<21>—— Merge Two Sorted Lists

来源:互联网 发布:腾讯新闻软件下载 编辑:程序博客网 时间:2024/05/23 21:54

21、Merge Two Sorted Lists

合并两个排序链表

将两个排序链表合并为一个新的排序链表

样例

给出 1->3->8->11->15->null2->null, 返回 1->2->3->8->11->15->null

代码:

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {        if(!l1)return l2;        if(!l2)return l1;        ListNode l3(0);        ListNode *curr1=l1,*curr2=l2;        ListNode *curr3=&l3;        while(curr1||curr2)        {            if(!curr1)            {                curr3->next=curr2;                return l3.next;            }            if(!curr2)            {                curr3->next=curr1;                return l3.next;            }            if(curr1->val>curr2->val)            {                curr3->next=curr2;                curr2=curr2->next;                curr3=curr3->next;            }            else             {                curr3->next=curr1;                curr1=curr1->next;                curr3=curr3->next;              }        }        return l3.next;    }};


原创粉丝点击