在你的代码中,将 mid
的值赋给了根节点的 Val
属性,而不是将 nums[mid]
的值赋给它。这导致了树节点的值不正确。
你可以修改代码如下:
func Recursion(nums []int, i, j int) *TreeNode {
if i > j {
return nil
}
root := &TreeNode{}
if i == j {
root.Val = nums[i]
return root
}
mid := (i + j) / 2
root.Val = nums[mid] // 修改此行
root.Left = Recursion(nums, i, mid - 1)
root.Right = Recursion(nums, mid + 1, j) // 修改此行
return root
}
通过将 nums[mid]
的值赋给根节点的 Val
属性,并修正右子数组递归调用时的索引参数,你应该能够顺利构建出平衡二叉搜索树并跳出递归。
内容由零声教学AI助手提供,问题来源于学员提问