题目
代码与解析
这道题和https://blog.devilwst.top/2021/12/20/最大二叉树/很像。
这道题也是要先划分一下数组,
然后给根节点赋值。
func sortedArrayToBST(nums []int) *TreeNode{
if len(nums)==0{
return nil
}
var helper func(nums []int)*TreeNode
helper = func(nums []int)*TreeNode{
if len(nums)==0{
return nil
}
// 划分数组,找根节点
half := len(nums)/2
// 根节点赋值
root := &TreeNode{Val:nums[half]}
// root.Left接受左子树
root.Left = helper(nums[:half])
// root.Right接受右子树
root.Right = helper(nums[half+1:])
return root
}
return helper(nums)
}