Merge Two Sorted Lists

来源:互联网 发布:.us域名查询 编辑:程序博客网 时间:2024/06/12 20:35

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*root;        ListNode*p;        if(l1->val<l2->val)        {            root=new ListNode(l1->val);            l1=l1->next;        }        else         {            root=new ListNode(l2->val);            l2=l2->next;        }        p=root;        while(l1!=NULL&&l2!=NULL)        {            if(l1->val<l2->val)            {                 p->next=new ListNode(l1->val);                 p=p->next;                 l1=l1->next;            }            else            {                p->next=new ListNode(l2->val);                p=p->next;                l2=l2->next;            }        }        while(l1!=NULL)        {            p->next=new ListNode(l1->val);            p=p->next;            l1=l1->next;        }        while(l2!=NULL)        {            p->next=new ListNode(l2->val);            p=p->next;            l2=l2->next;        }        return root;    }};


原创粉丝点击