開始挑戰 Linked-List 這個分類的題目,一樣是參考網路上已經有整理的 Leetcode 分类顺序表。
參考的頻道或部落格條列如下,提供給大家參考:
YT:花花醬 / Cspiration 官方频道 / Jacob Huang /basketwangCoding/今天比昨天厲害/来Offer – LaiOffer/小Q刷Leetcode
Blog:Grandyang/
這篇基本上就是總覽,把解題過程的思路和參考的講解視頻以及其他參考資料都整理在下面。
[2020/12/18] 距離上次刷題又過了一個月,果然怠惰是人類大敵啊。這次從 Linked-List 開始,這個類別題數不多,希望2020前可以刷完。
No. | 完成日期 | 難易度 | Leetcode Link | 網路講解視頻 | Memo |
1 | 2020/12/18 | Medium | 2. Add Two Numbers | 給定兩 List ,每個 Node 分別代表一個位數,將兩 List 相加 因為剛好從最低位元開始排起,直接遍歷將兩 Node 相加,再考慮進位即可。 | |
2 | Medium | 19. Remove Nth Node From End of List | 給定一 List,將倒數第N個移除 最前面加上 Dummy,處理一些 corner case,接著先掃一次找出 List 長度,再移動到第 Length – n 個,將前一個的 Next 指定成後面的即可。 | ||
3 | Easy | 206. Reverse Linked List | 反轉 Linked List 先定義一個 pre 初始化為 NULL 用來存前一個 Node,一個 cur 指定目前要處理的 Node,讓 Head 指向下一個要處理的位置。接著不停重複以下處理直到 cur = head = null,最後將 head 指到 pre 即可。 head = cur->next; cur->next = pre; pre = cur; cur = head; | ||
4 | Easy | 141. Linked List Cycle | 判斷 Linked List 是否有環 如果 Head 為 Null,直接回 false,宣告一個慢指針指向 Head,一個快指針指向 Head 下一個。 如果快慢指針相等,則表示找到環。不然繼續確認快指針&快指針下一個是否為空,如果為空則表示沒有環。否則慢指針走一步,快指針走兩步重複上面步驟。 | ||
5 | Medium | 24. Swap Nodes in Pairs | |||
6 | |||||
7 | |||||
8 | |||||
9 | |||||
10 | |||||