Leetcode: Merge Two Sorted Lists

来源:互联网 发布:淘宝上买游戏币可靠吗 编辑:程序博客网 时间:2024/05/16 07:29

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

递归解决很简单

/** * 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 == NULL) return l2;     if (l2 == NULL) return l1;          ListNode *ret = NULL;          if (l1->val < l2->val)     {         ret = l1;         ret->next = mergeTwoLists(l1->next, l2);     }     else     {         ret = l2;         ret->next = mergeTwoLists(l1, l2->next);     }          return ret; }};

之前编译错误的代码附上求指点:

/** * 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) {        ListNode* p,q,r,head;                if(l1=NULL && l2==NULL)        {            return NULL;        }        if(l1==NULL)        {            return l2;        }        if(l2==NULL)        {            return l1;        }        p=l1;        q=l2;        head=NULL;        if(p.val<=q.val)        {            head=p;            p=p->next;        }        else        {            head=q;            q=q->next;        }        r=head;        while(p!NULL && q!=NULL)        {            if(p->val<=q.val)            {                r->next=p;                r=p;                p=p->next;            }            else            {                r->next=q;                r=q;                q=q->next;            }        }        if(p==NULL)        {            while(q!=NULL)            {                r->next=q;                r=q;                q=q->next;            }        }        else        {            while(p!=NULL)            {                r->next=p;                r=p;                p=p->next;            }        }        return head;            }};


1 0
原创粉丝点击