如果6没有左节点又该怎么办?
var findMinNode = function (node) {
if(node){
while (node && node.left !== null) {
node = node.left;
}
return node;
}
return null;
}
和
var minNode = function (node) {
if(node){
while (node && node.left !== null) {
node = node.left;
}
return node.key;
}
return null;
}
雷同,我觉得没必要写两个。
可以写为
var aux = minNode(node.right);
node.key = aux;
node.right = removeNode(node.right, aux);
去掉findMinNode;
让该节点的值等于右子树的最小节点的值,删除右子树中最小节点,和有没有左子树没关系