LeetCode-Convert Sorted Array to Binary Search Tree

要求是将数组变成,二叉树平衡树(不同子树之间的高度差不超过 1),而且先序遍历要从小到大。

所以,只要能够确定父节点的值,然后递归构建字数就可以了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func sortedArrayToBST(nums []int) *TreeNode {
if nums==nil || len(nums)==0{
return nil
}
ret:=new(TreeNode)
middle:=len(nums)/2
ret.Val=nums[middle]
ret.Left=sortedArrayToBST(nums[:middle])
ret.Right=sortedArrayToBST(nums[middle+1:])
return ret
}