[recommend for beginners]clean C++ implementation with detailed explaination


  • 1

    This question can solved quickly by record the result using the dummy-node.
    my code is very clean.

    class Solution {
    public:
        ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
            ListNode* dummy=new ListNode(-1);
            ListNode* cur=dummy;
            while(l1 && l2){
                if(l1->val < l2->val){
                    cur->next=l1;
                    cur=l1;
                    l1=l1->next;
                }
                else{
                    cur->next=l2;
                    cur=l2;
                    l2=l2->next;
                }
            }
            if(!l1)  cur->next=l2;
            if(!l2)  cur->next=l1;
            return dummy->next;
        }
    };

  • 1
    W
    class Soultion{
    public:
        ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
            ListNode* dummy=new ListNode(-1);
            ListNode* cur=dummy;
            while(l1 && l2){
                if(l1->val < l2->val){
                    cur->next=l1;
                    cur=l1;
                    l1=l1->next;
                }
                else{
                    cur->next=l2;
                    cur=l2;
                    l2=l2->next;
                }
            }
            if(!l1)  cur->next=l2;
            if(!l2)  cur->next=l1;
            ListNode *toDelete = dummy;
            dummy = dummy->next;
            delete toDetele;
            return dummy;
        }
    };

  • 0
    B
    This post is deleted!

  • 0
    W

    Remember to delete the dummy pointer : )


Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.