將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。
本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。
示例:
給定有序陣列: [-10,-3,0,5,9],
乙個可能的答案是:[0,-3,9,-10,null,5],它可以表示下面這個高度平衡二叉搜尋樹:
0/ \
-3 9
/ /
-10 5
採用分治演算法,選擇中間元素的為根節點,剩下的元素分為部分,左邊作為左子樹,右邊作為右子樹。
public treenode sortedarraytobst(int nums)
public treenode createtree(int nums,int l,int h)
108 將有序陣列轉換為高度平衡二叉搜尋樹
此題首先可以確定選用的演算法是遞迴 對於二叉搜尋樹我們可以知道其左葉子節點值 根節點值 右葉子節點值,故二叉搜尋樹的中序遍歷為乙個公升序陣列。即題目給的有序陣列。中序遍歷 先遍歷左子樹,在遍歷根節點,最後遍歷右子樹。如果不要求為平衡二叉搜尋樹的話,僅由乙個公升序陣列,樹的根節點就有多種不同的取值,就...
leetcode記錄 將有序陣列轉換為二叉搜尋樹
將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面這個高度平衡二叉搜尋樹 0 3 9 10...
LeetCode 將有序陣列轉換為二叉搜尋樹
將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面這個高度平衡二叉搜尋樹 0 3 9 10...