题目:
给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。
高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。
来源:力扣(LeetCode) 链接:leetcode.cn/problems/co… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解法:
func sortedArrayToBST(nums []int) *TreeNode {
length := len(nums)
if length == 0 {
return nil
}
return coreSortedArrayToBST(nums, 0, length - 1)
}
func coreSortedArrayToBST(nums []int, l, r int) *TreeNode {
if l > r {
return nil
}
mid := (l + r) / 2
node := &TreeNode{
Val: nums[mid],
}
node.Left = coreSortedArrayToBST(nums, l, mid - 1)
node.Right = coreSortedArrayToBST(nums, mid + 1, r)
return node
}