LeetCode:Merge Two Sorted Lists

 

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.

 1 /**
 2  * Definition for singly-linked list.
 3  * struct ListNode {
 4  *     int val;
 5  *     ListNode *next;
 6  *     ListNode(int x) : val(x), next(NULL) {}
 7  * };
 8  */
 9 class Solution {
10 public:
11     ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
12         if(l1==NULL) return l2;
13         if(l2==NULL) return l1;
14         ListNode dummy(-1);
15         ListNode *p=&dummy;
16         while(l1!=NULL&&l2!=NULL)
17         {
18             if(l1->val<l2->val)
19             {
20                 p->next=l1;
21                 l1=l1->next;
22                 
23             }
24             else
25             {
26                 p->next=l2;
27                 l2=l2->next;
28             }
29            p=p->next;
30             
31         }
32         
33         l1==NULL?p->next=l2:p->next=l1;
34         return dummy.next;
35         
36     }
37 };

 

posted @ 2015-08-28 10:49  尾巴草  阅读(125)  评论(0编辑  收藏  举报