ZBLOG

/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ func Recursion(nums []int, i, j int) *TreeNode { if i > j { return nil } root := &TreeNode...

在你的代码中,将 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助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://sdn.0voice.com/?id=4777

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?