Day_06:(LeetCode-21)合併兩個有序連結串列
阿新 • • 發佈:2018-12-18
問題描述:
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) { if(l1 == NULL) { return l2; } else if(l2 == NULL) { return l1; } //先取小的節點作為頭 struct ListNode* head, *tail; if(l1->val < l2->val) { head = l1; l1 = l1->next; } else { head = l2; l2 = l2->next; } //拿小的節點進行尾插 tail = head; while(l1 !=NULL && l2 != NULL) { if(l1->val < l2->val) { tail->next = l1; l1 = l1->next; } else { tail->next = l2; l2 = l2->next; } tail = tail->next; } if(l1 != NULL) { tail->next = l1; } if(l2 != NULL) { tail->next = l2; } return head; }