首页 > 代码库 > LeetCode "Merge Two Sorted Lists"

LeetCode "Merge Two Sorted Lists"

Simply care about the boundary cases:

class Solution {public:    ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {        if (l1 && !l2) return l1;        if (!l1 && l2) return l2;        if (!l1 && !l2) return NULL;        ListNode *p0 = l1->val <= l2->val ? l1 : l2;        ListNode *p1 = p0 == l1 ? l2 : l1;        ListNode *pa = p0, *pb = p0->next;        ListNode *pc = p1, *pd = p1->next;        while (pa && pc)        {            if (!pb)            {                pa->next = pc;                break;            }            while (pa->val <= pc->val && pc->val <= pb->val)            {                //    Link                pa->next = pc;                pc->next = pb;                //    Move on                pc = pd;                if (pd) pd = pd->next;                pa = pa->next;                if (!pc || !pb) break;            }            pa = pa->next;            if(pb) pb = pb->next;        }        return p0;    }};
View Code