Number 108 將有序陣列轉換為二叉搜尋樹

2021-10-07 18:31:38 字數 881 閱讀 6203

將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。

本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 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 它可以表示下面...