LeetCode21. 合并两个有序链表

题目

分析

本题可以直接模拟,可以递归

代码

递归

 1 class Solution {
 2 public:
 3     ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
 4        if(l1 == NULL) return l2;
 5        if(l2 == NULL) return l1;
 6        if(l1->val < l2->val){
 7            l1->next = mergeTwoLists(l1->next,l2);
 8            return l1;
 9        }else{
10            l2->next = mergeTwoLists(l1,l2->next);
11            return l2;
12        }
13     }
14 };
 1 class Solution {
 2 public:
 3     ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
 4 
 5         ListNode* preHead = new ListNode(-1);
 6         ListNode* p  = preHead;
 7 
 8         while(l1 && l2 ){
 9             if(l1->val > l2->val){
10                 p->next = l2; 
11                 l2 = l2->next;
12             }
13             else {
14                 p->next = l1;
15                 l1 = l1->next;
16             }
17               p = p->next;
18         }
19 
20         if(!l1) while(l2) { p->next = l2;l2 = l2->next; p = p->next; }
21         
22         if(!l2) while(l1) { p->next = l1;l1 = l1->next;p = p->next;  }
23 
24         return preHead->next;
25   
26     }
27 };

 

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

 

posted @ 2021-03-20 20:55  Uitachi  阅读(30)  评论(0)    收藏  举报