↓快轉到主要內容

Linked-List

LeetCode 328: Odd Even Linked List
·1 分鐘
LeetCode Medium Linked-List
LeetCode 328 解題筆記:奇數位置和偶數位置各接成一條串列,最後奇數串列接上偶數串列的頭;記得把偶數串列的尾巴斷開
LeetCode 25: Reverse Nodes in k-Group
·1 分鐘
LeetCode Hard Linked-List Recursion
LeetCode 25 解題筆記:先數長度決定要翻幾組,每組翻 k 個節點;dummy head 讓第一組不用特判,翻完原本的頭變成這組的尾
LeetCode 460: LFU Cache
·2 分鐘
LeetCode Hard Hash-Table Linked-List Design Doubly-Linked-List
LeetCode 460 解題筆記:key → 節點、freq → 雙向鏈結串列,再記一個 min_freq;同頻率裡用 LRU 決定淘汰誰
LeetCode 146: LRU Cache
·2 分鐘
LeetCode Medium Hash-Table Linked-List Design Doubly-Linked-List
LeetCode 146 解題筆記:雜湊表找節點、雙向鏈結串列維護使用順序;get 和更新既有的 key 都要移到最前面
Linked List 鏈結串列
·3 分鐘
演算法 Linked-List Two-Pointers
Dummy head、反轉(整條、一段、一半)、快慢指針找中點與環、間隔 n 的雙指針、兩兩交換、兩條串列相遇,以及用雜湊表複製帶 random 指標的串列
LeetCode 23: Merge k Sorted Lists
·3 分鐘
LeetCode Hard Linked-List Heap Merge-Sort Divide-and-Conquer
LeetCode 23 解題筆記:heap 只放 k 個開頭,以及分治兩兩合併
LeetCode 21: Merge Two Sorted Lists
·2 分鐘
LeetCode Easy Linked-List Two-Pointers Merge-Sort
LeetCode 21 解題筆記:dummy node,以及 Python 變數為什麼不是 copy
LeetCode 1290: Convert Binary Number in a Linked List to Integer
·1 分鐘
LeetCode Easy Linked-List Bit-Manipulation Math
LeetCode 1290 解題筆記:從頭走到尾,每一步把目前的值左移一位再加上新的位元
LeetCode 2487: Remove Nodes From Linked List
·1 分鐘
LeetCode Medium Linked-List Stack Recursion Monotonic-Stack
LeetCode 2487 解題筆記:保留的節點從左到右是非遞增的;用單調棧,比新節點小的都彈掉,最後把棧裡的節點串起來
LeetCode 92: Reverse Linked List II
·1 分鐘
LeetCode Medium Linked-List
LeetCode 92 解題筆記:dummy 走到 left 的前一個節點,再把後面的節點一個一個搬到它後面,搬 right - left 次
LeetCode 109: Convert Sorted List to Binary Search Tree
·1 分鐘
LeetCode Medium Linked-List Divide-and-Conquer Tree Binary-Search-Tree
LeetCode 109 解題筆記:快慢指針找中點當根,左右兩半遞迴建樹;高度自然平衡
LeetCode 117: Populating Next Right Pointers in Each Node II
·1 分鐘
LeetCode Medium Linked-List Tree Depth-First-Search Breadth-First-Search Binary-Tree
LeetCode 117 解題筆記:BFS 一層一層接 next;不是完全二元樹時,只看隔壁節點的小孩會斷掉