將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。最好的方法就是本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。
有序陣列中間的數作為每個子樹的根,然後左邊的數作為左子樹,右邊的數作為右子樹,這樣使用遞迴就可求出該平衡樹。
不要被高度差絕對值不超過1所迷惑,其實按照上述方法構造,高度差不會超過1的。
/**
* definition for a binary tree node.
* public class treenode
* }*/class
solution
public treenode highbalancebintree
(int
nums,
int left,
int right)
int mid = left +
((right - left)
>>1)
; treenode root =
newtreenode
(nums[mid]);
root.left =
highbalancebintree
(nums, left, mid -1)
; root.right =
highbalancebintree
(nums, mid +
1, right)
;return root;
}}
LeetCode108 將有序陣列轉換為二叉搜尋樹
將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面這個高度平衡二叉搜尋樹 0 3 9 10...
LeetCode108 將有序陣列轉換為二叉搜尋樹
將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面這個高度平衡二叉搜尋樹 0 3 9 10...
leetcode108 將有序陣列轉換為二叉搜尋樹
將有序陣列轉換為二叉搜尋樹。難度 簡單。將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面...