LeetCode 21.合併兩個有序連結串列
阿新 • • 發佈:2021-12-13
題目
將兩個升序連結串列合併為一個新的 升序 連結串列並返回。新連結串列是通過拼接給定的兩個連結串列的所有節點組成的。
分析
定義result儲存結果,將兩個連結串列各自遍歷一遍,每次各拿出一個結點比較,把較小的連線在result後面,直到至少有一個連結串列元素全用完,此時,將另一個連結串列剩餘部分直接連線在當前結果後面。
圖解
程式碼
class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode* result = new ListNode(-1); ListNode* cur1 = l1; ListNode* cur2 = l2; ListNode* cur = result; while (cur1 != nullptr && cur2 != nullptr) { if (cur1->val < cur2->val) { cur->next = cur1; cur1 = cur1->next; }else { cur->next = cur2; cur2 = cur2->next; } cur = cur->next; } if (cur1 == nullptr) cur->next = cur2; if (cur2 == nullptr) cur->next = cur1; return result->next; } };