[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.

維護一個新的鏈表,用兩個指針指向兩個鏈表,類似merge sot的比較。

 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         // Start typing your C/C++ solution below
13         // DO NOT write int main() function
14         if (l1 == NULL)
15             return l2;
16             
17         if (l2 == NULL)
18             return l1;
19             
20         ListNode *p = l1;
21         ListNode *q = l2;
22         ListNode *head = NULL;
23         ListNode *curNode = NULL;
24         
25         while(p && q)
26         {
27             if (head == NULL)
28             {
29                 if (p->val < q->val)
30                 {
31                     head = curNode = p;
32                     p = p->next;
33                     curNode->next = NULL;
34                 }
35                 else
36                 {
37                     head = curNode = q;
38                     q = q->next;
39                     curNode->next = NULL;
40                 }
41             }
42             else
43             {
44                 if (p->val < q->val)
45                 {
46                     curNode->next = p;
47                     curNode = p;
48                     p = p->next;
49                     curNode->next = NULL;
50                 }
51                 else
52                 {
53                     curNode->next = q;
54                     curNode = q;
55                     q = q->next;
56                     curNode->next = NULL;
57                 }
58             }
59         }
60         
61         if (p)
62             curNode->next = p;
63         else if (q)
64             curNode->next = q;
65             
66         return head;       
67     }
68 };


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM