为了账号安全,请及时绑定邮箱和手机立即绑定

删除了中间节点3的问题

你好 如果删除了中间节点3后 将中间节点3变4后删除了 该节点的右子树的最小节点4后 再通过中序遍历查看 会发现该中间节点4(原3后4) 的左右孩子都会是null 但是打印中序的顺序是对的http://img1.sycdn.imooc.com//5e5b6a6b0001acde04790298.jpg

正在回答

1 回答

//中序时应该打出来的是node的key 本来是应该打出4 的却把整个node打印出来了. 
//说明在最后一个(node.left && node.right)同时存在判断中 赋值出现错误 
//本应该是

    let aux = findMinNode(node.right);
    node.key = aux.key;
    ...

// 写成了
    let aux = findMinNode(node.right);
    node = aux.key;
    ...
    
//因为本身Object是引用类型数据. 所以node(4) 的left right就都是null

{
    key:8
    left:{
        key: {  //错误位置 ,本来应该是Number(4), 现在变成Node(4)了
            key:4,
            left:...,
            right:...
        },
        left:...,
        right:...
    }
    right:{
        key:10,
        left:...,
        right:...
    }
}


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

删除了中间节点3的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信