mins Dream

LeetCode - Convert Sorted Array to BST(將排序數組轉換為平衡二元搜尋樹)

題目描述 給定一個遞增排序的整數數組,將其轉換為一棵高度平衡的二元搜尋樹(BST)。高度平衡的意思是:每個節點的左右子樹高度差不超過 1。 範例: 輸入:nums = [-10, -3, 0, 5, 9] 輸出:[0, -3, 9, -10, null, 5] 解釋:[0, -10, 5, null, -3, null, 9] 也是正確答案。 解法思路 利用二元搜尋樹和數組的特性,我...

LeetCode - Lowest Common Ancestor of a BST(二元搜尋樹的最低公共祖先)

題目描述 給定一個二元搜尋樹(BST)的根節點以及兩個節點 p 和 q,找到它們的最低公共祖先(LCA)。 在二元搜尋樹中,最低公共祖先(LCA)定義為距離 p 和 q 最近的節點,且該節點是 p 和 q 的祖先。由於是二元搜尋樹,因此有以下特性: 對於每個節點 N,左子樹的所有節點值小於 N.val,右子樹的所有節點值大於 N.val。 範例: 輸入:root = [6,2,...

LeetCode - Validate Binary Search Tree(驗證二元搜尋樹)

題目描述 給定一個二元樹的根節點,判斷該樹是否為有效的二元搜尋樹(BST)。 一個二元搜尋樹應滿足以下條件: 對於每個節點,其左子樹中的所有節點值小於該節點的值。 對於每個節點,其右子樹中的所有節點值大於該節點的值。 左右子樹也必須是二元搜尋樹。 範例: 輸入: root = [2,1,3] 輸出:true 輸入: root = [5,1,4,null...

LeetCode - Lowest Common Ancestor of a Binary Tree(二元樹的最低公共祖先)

題目描述 給定一個二元樹的根節點和兩個節點 p 和 q,找到這兩個節點的最低公共祖先(LCA)。 在一棵二元樹中,節點 p 和 q 的最低公共祖先是距離 p 和 q 最近的節點,且這個節點是 p 和 q 的祖先。節點可以是它自己的祖先。 範例: 輸入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1 輸出:3 解釋:節點 5...

LeetCode - Maximum Depth of Binary Tree(二元樹的最大深度)

題目描述 給定一個二元樹,找出其最大深度。二元樹的深度是從根節點到最遠葉節點的最長路徑上的節點數。 範例: 輸入:root = [3,9,20,null,null,15,7] 輸出:3 解釋:此二元樹的最大深度為 3。 輸入:root = [1,null,2] 輸出:2 限制: 二元樹的節點數量範圍是 [0, 10^4]。 樹的深度範圍不限,樹可能是空的。 解法思路...