慕姐1218095
2020-03-01 15:50
你好 如果删除了中间节点3后 将中间节点3变4后删除了 该节点的右子树的最小节点4后 再通过中序遍历查看 会发现该中间节点4(原3后4) 的左右孩子都会是null 但是打印中序的顺序是对的
//中序时应该打出来的是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:...
}
}Javascript实现二叉树算法
47023 学习 · 100 问题
相似问题