Merge Two Sorted Lists

Merge Two Sorted Lists

LeetCode 21. Merge Two Sorted Lists 教學與筆記。

說明

Input: list1 = [1,2,4], list2 = [1,3,4]
Output: [1,1,2,3,4,4]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){

if(list1 == NULL){
return list2;
}
if(list2 == NULL){
return list1;
}

struct ListNode* dummy = (struct ListNode*)malloc(sizeof(struct ListNode));
struct ListNode* tail = dummy;

while(list1 != NULL && list2 != NULL){
if(list1->val <= list2->val){
tail -> next = list1;
list1 = list1 -> next;
}
else{
tail -> next = list2;
list2 = list2 -> next;
}
tail = tail -> next; // Move to either old list1 node or old list2 node
}

if(list1 == NULL){
tail -> next = list2;
}

if(list2 == NULL){
tail -> next = list1;
}

return dummy->next;
}

參考

LeetCode Merge Two Sorted Lists webpage
geeksforgeeks merge-two-sorted-linked-lists

Author

Meow Lucian

Posted on

2022-07-06

Updated on

2022-07-10

Licensed under

Comments