LeetCode(21)--Merge Two Sorted Lists

来源:互联网 发布:赛尔号胶囊玩具淘宝 编辑:程序博客网 时间:2024/06/06 13:56

这道题目是要求合并两个有序链表,思路是一次比较两个链表的元素,插入到新的链表中,需要注意的是三个指针的一些细节问题,截至条件是一个链表访问完毕,直接将另一个链表附在新链表后面即可。
实现代码如下:

class Solution {public:    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {        if (l1 == NULL)return l2;        if (l2 == NULL)return l1;        ListNode *res=new ListNode(0);        ListNode* p3 = res;        ListNode* p1 = l1;        ListNode* p2 = l2;        while (p1&&p2){            if (p1->val <= p2->val)            {                p3->next = p1;                p1 = p1->next;            }            else             {                p3->next = p2;                p2 = p2->next;            }            p3 = p3->next;        }        if (p1)p3->next = p1;        if (p2)p3->next= p2;        return res->next;    }};
原创粉丝点击