Depth-First-Search
LeetCode 572: Subtree of Another Tree
·1 分鐘
LeetCode
Easy
Tree
Depth-First-Search
String-Matching
Binary-Tree
LeetCode 572 解題筆記:對 root 的每一個節點都檢查一次「以它為根的子樹跟 subRoot 是否相同」;遞迴時要呼叫 isSubtree,不是只比左右小孩
LeetCode 563: Binary Tree Tilt
·1 分鐘
LeetCode
Easy
Tree
Depth-First-Search
Binary-Tree
Dp-on-Trees
LeetCode 563 解題筆記:後序回傳子樹的總和,每個節點的 tilt 是左右子樹總和的差,加進答案
LeetCode 559: Maximum Depth of N-ary Tree
·1 分鐘
LeetCode
Easy
Tree
Depth-First-Search
Breadth-First-Search
LeetCode 559 解題筆記:深度等於 1 加上所有小孩深度的最大值;沒有小孩時是 1
LeetCode 543: Diameter of Binary Tree
·1 分鐘
LeetCode
Easy
Tree
Depth-First-Search
Binary-Tree
Dp-on-Trees
LeetCode 543 解題筆記:直徑可能不經過根;後序回傳高度,同時在每個節點用「左高 + 右高」更新答案;算的是邊數
LeetCode 530: Minimum Absolute Difference in BST
·1 分鐘
LeetCode
Easy
Tree
Depth-First-Search
Breadth-First-Search
Binary-Search-Tree
LeetCode 530 解題筆記:BST 的中序是由小到大,最小差一定出現在中序相鄰的兩個值之間;記住前一個值逐一比較
LeetCode 501: Find Mode in Binary Search Tree
·1 分鐘
LeetCode
Easy
Tree
Depth-First-Search
Binary-Search-Tree
Binary-Tree
LeetCode 501 解題筆記:BST 中序是排序的,相同的值會連在一起;中序時數目前這段的長度,比最大值大就重設答案,一樣大就加入
LeetCode 463: Island Perimeter
·1 分鐘
LeetCode
Easy
Array
Depth-First-Search
Breadth-First-Search
Matrix
LeetCode 463 解題筆記:每格陸地貢獻 4 條邊,每跟上方或左方的陸地相鄰一次就少 2 條
LeetCode 404: Sum of Left Leaves
·1 分鐘
LeetCode
Easy
Tree
Depth-First-Search
Breadth-First-Search
Binary-Tree
LeetCode 404 解題筆記:DFS 時告訴小孩自己是不是左小孩,只有「是左小孩而且是葉子」才加
LeetCode 257: Binary Tree Paths
·1 分鐘
LeetCode
Easy
String
Backtracking
Tree
Depth-First-Search
LeetCode 257 解題筆記:DFS 帶著目前的路徑字串往下,到葉子時把整條路徑加進答案
LeetCode 235: Lowest Common Ancestor of a Binary Search Tree
·1 分鐘
LeetCode
Medium
Tree
Depth-First-Search
Binary-Search-Tree
Binary-Tree
LeetCode 235 解題筆記:p、q 都比節點小就往左,都比節點大就往右,否則(一邊一個或其中一個就是自己)這個節點就是 LCA
LeetCode 226: Invert Binary Tree
·1 分鐘
LeetCode
Easy
Tree
Depth-First-Search
Breadth-First-Search
Binary-Tree
LeetCode 226 解題筆記:每個節點交換左右小孩;用同時指定,避免先改掉的那邊被拿來用
LeetCode 145: Binary Tree Postorder Traversal
·1 分鐘
LeetCode
Easy
Stack
Tree
Depth-First-Search
Binary-Tree
LeetCode 145 解題筆記:迭代的後序遍歷,節點第一次彈出時標記後放回去,再依序推右、左小孩;第二次彈出才記錄