Medium
LeetCode 99: Recover Binary Search Tree
·1 分鐘
LeetCode
Medium
Tree
Depth-First-Search
Binary-Search-Tree
Binary-Tree
LeetCode 99 解題筆記:中序遍歷找逆序:第一次逆序的前一個、最後一次逆序的後一個,就是被交換的兩個節點
LeetCode 450: Delete Node in a BST
·1 分鐘
LeetCode
Medium
Tree
Binary-Search-Tree
Binary-Tree
LeetCode 450 解題筆記:找到節點後分三種情況:沒有小孩、一個小孩直接接上,兩個小孩用右子樹最小值替換再刪掉它
LeetCode 449: Serialize and Deserialize BST
·1 分鐘
LeetCode
Medium
String
Tree
Depth-First-Search
Breadth-First-Search
Design
Binary-Search-Tree
Binary-Tree
LeetCode 449 解題筆記:BST 只要存前序,不用空節點標記;反序列化帶著上下界遞迴,O(n)
LeetCode 331: Verify Preorder Serialization of a Binary Tree
·1 分鐘
LeetCode
Medium
String
Stack
Tree
Binary-Tree
LeetCode 331 解題筆記:數空位:一開始 1 個,每個節點用掉 1 個,非空節點再多出 2 個;中途不能變負,最後要剛好 0
LeetCode 701: Insert into a Binary Search Tree
·1 分鐘
LeetCode
Medium
Tree
Binary-Search-Tree
Binary-Tree
LeetCode 701 解題筆記:沿著 BST 往下走到空位接上新節點;空樹要直接回傳新節點
LeetCode 687: Longest Univalue Path
·1 分鐘
LeetCode
Medium
Tree
Depth-First-Search
Binary-Tree
Dp-on-Trees
LeetCode 687 解題筆記:DFS 回傳往下同值的最長鏈(邊數),在每個節點用左 + 右更新答案
LeetCode 515: Find Largest Value in Each Tree Row
·1 分鐘
LeetCode
Medium
Tree
Depth-First-Search
Breadth-First-Search
Binary-Tree
LeetCode 515 解題筆記:BFS 層序遍歷,每層取最大值;初始值用 -inf
LeetCode 429: N-ary Tree Level Order Traversal
·1 分鐘
LeetCode
Medium
Tree
Breadth-First-Search
LeetCode 429 解題筆記:BFS 層序遍歷,把左右小孩換成 children 清單
LeetCode 173: Binary Search Tree Iterator
·1 分鐘
LeetCode
Medium
Stack
Tree
Design
Binary-Search-Tree
Binary-Tree
Iterator
LeetCode 173 解題筆記:攤平成陣列很直接但用 O(n) 空間;follow-up 用 stack 存左側鏈,均攤 O(1)、空間 O(h)
LeetCode 1372: Longest ZigZag Path in a Binary Tree
·1 分鐘
LeetCode
Medium
Dynamic-Programming
Tree
Depth-First-Search
Binary-Tree
Dp-on-Trees
LeetCode 1372 解題筆記:每個節點回傳兩個值:從這裡先往左、先往右的最長 zigzag;往左走接的是左小孩「先往右」的值
LeetCode 3787: Find Diameter Endpoints of a Tree
·1 分鐘
LeetCode
Medium
Tree
Breadth-First-Search
Graph
LeetCode 3787 解題筆記:兩次 BFS 找到一條直徑的兩端 A、B;任一點最遠的點一定是 A 或 B,所以 max(dist(A,i), dist(B,i)) 等於直徑的點就是某條直徑的端點
LeetCode 314: Binary Tree Vertical Order Traversal
·1 分鐘
LeetCode
Medium
Hash-Table
Tree
Depth-First-Search
Breadth-First-Search
Sorting
Binary-Tree
LeetCode 314 解題筆記:BFS 帶著欄位編號,用 BFS 才能保證同一欄由上到下、同一列由左到右