Tree
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 解題筆記:迭代的後序遍歷,節點第一次彈出時標記後放回去,再依序推右、左小孩;第二次彈出才記錄
LeetCode 112: Path Sum
·1 分鐘
LeetCode
Easy
Tree
Depth-First-Search
Breadth-First-Search
Binary-Tree
LeetCode 112 解題筆記:往下走時把 targetSum 減掉目前的值,到葉子時剛好是 0(或等於葉子的值)就成立
LeetCode 111: Minimum Depth of Binary Tree
·1 分鐘
LeetCode
Easy
Tree
Depth-First-Search
Breadth-First-Search
Binary-Tree
LeetCode 111 解題筆記:最小深度要到葉子才算;只有一邊有小孩時不能拿空的那邊(深度 0)當最小值
LeetCode 110: Balanced Binary Tree
·1 分鐘
LeetCode
Easy
Tree
Depth-First-Search
Binary-Tree
LeetCode 110 解題筆記:每一個節點的左右高度差都不能超過 1;後序回傳高度,不平衡時回傳 -1 一路傳上去
LeetCode 108: Convert Sorted Array to Binary Search Tree
·1 分鐘
LeetCode
Easy
Array
Divide-and-Conquer
Tree
Binary-Search-Tree
LeetCode 108 解題筆記:中間的元素當根,左右兩半遞迴;左右大小最多差 1,自然是平衡的
LeetCode 104: Maximum Depth of Binary Tree
·1 分鐘
LeetCode
Easy
Tree
Depth-First-Search
Breadth-First-Search
Binary-Tree
LeetCode 104 解題筆記:深度等於 1 加上左右子樹深度的較大值;空樹是 0
LeetCode 101: Symmetric Tree
·1 分鐘
LeetCode
Easy
Tree
Depth-First-Search
Breadth-First-Search
Binary-Tree
LeetCode 101 解題筆記:左子樹跟右子樹互為鏡像:外側跟外側比、內側跟內側比;比的是值,不是節點本身
LeetCode 100: Same Tree
·1 分鐘
LeetCode
Easy
Tree
Depth-First-Search
Breadth-First-Search
Binary-Tree
LeetCode 100 解題筆記:兩邊都是空的才相同;一邊空一邊不空就不同;都不空時比值再遞迴比左右
LeetCode 94: Binary Tree Inorder Traversal
·1 分鐘
LeetCode
Easy
Stack
Tree
Depth-First-Search
Binary-Tree
LeetCode 94 解題筆記:迭代的中序遍歷,一路往左把節點推進 stack,彈出時記錄,再轉向右子樹
LeetCode 144: Binary Tree Preorder Traversal
·1 分鐘
LeetCode
Easy
Stack
Tree
Depth-First-Search
Binary-Tree
LeetCode 144 解題筆記:迭代的前序遍歷,彈出就記錄,先推右小孩再推左小孩,左邊才會先處理