LeetCode — Merge Two Sorted Lists

KaiChun Yang
2 min readJul 15, 2021

--

題目連結:21. Merge Two Sorted Lists
難度:easy

題目大意:
將兩個 sorted 的 linked list 合併為一個 sorted linked list。

解題過程:
1. 檢查 list1 及 list2 是否為空
2. 用一個 linked list 放置合併資料,並以 pointer 記錄初始記憶體位置
3. 接著以迴圈每次比較 list1 及 list2 值的大小,依序放到 linked list 中
4. 最後將剩餘的 list (因已排序) 資料直接放到 linked list 中

--- Hint ---這題可以釐清 linked list 概念ListNode* head; // 表示一個節點 pointer
head->val; // 可以得到 head 的值
head->next; // 指向下一個節點位置
【舉例】
head: [item0]->[item1]->[item2]-> ...
ListNode* ans = head;
ans = ans->next; // 讓下一個位置變為現在的位置
head: [item0]->[item1]->[item2]-> ... // 不變
ans: [item1]->[item2]-> ...

使用語言:C++, Python

實作程式如下:

c++

時間複雜度:O(M+N),M 為 l1 長度,N 為 l2 長度
空間複雜度:O(M+N)

python

時間複雜度:O(M+N),M 為 l1 長度,N 為 l2 長度
空間複雜度:O(M+N)

Runtime: 39 ms, faster than 92.21% of Python online submissions for Merge Two Sorted Lists.
Memory Usage: 13.9 MB, less than 33.64% of Python online submissions for Merge Two Sorted Lists.

--

--

KaiChun Yang
KaiChun Yang

No responses yet