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; }
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