二叉樹(Binary Tree)是由節點(node)和邊(edge)所組成的樹狀結構,每個節點最多只有兩個子節點,左子節點與右子節點之分別代表了左右分支。其中,最頂端的節點稱為根節點(root),沒有子節點的節點稱為葉節點(leaf)。
舉例來說,以下為一個Binary Tree:
A
/ \
B C
/ \ / \
D E F G
其中,根節點為A,左子節點為B,右子節點為C,B的左子節點為D,右子節點為E,C的左子節點為F,右子節點為G。A、B、C、D、E、F、G都是節點,由線條所組成的部分則為邊。
在此Binary Tree中,每個節點最多只有兩個子節點,因此符合Binary Tree的定義。
給定一個二叉搜索樹,找到其中第k小的元素。
答案:https://leetcode.com/problems/kth-smallest-element-in-a-bst/
給定一個二叉樹,找到該樹中兩個指定節點的最近公共祖先。
答案:https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/
給定一個二叉樹,找到從根節點到葉子節點的所有路徑,這些路徑需要滿足以下條件:路徑的和等於給定的 sum。
答案:https://leetcode.com/problems/path-sum-ii/
給定一個二叉樹,找到該樹的最大深度。
答案:https://leetcode.com/problems/maximum-depth-of-binary-tree/
給定一個二叉樹,找到該樹中每一棵子樹中的最大值與最小值之差的最大值。
答案:https://leetcode.com/problems/maximum-difference-between-node-and-ancestor/