码迷,mamicode.com
首页 > 其他好文 > 详细

删除二叉树节点

时间:2019-03-08 16:42:09      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:root   splay   tno   font   isp   树节点   删除   str   strong   

function remove (root, key) {
if (root == null){
return null;
}
var current = root;
if (current.key > key) {
current.left = remove(current.left);
return current.left;
}
else if (current.key < key) {
current.right = remove(current.right);
return current.right;
} else {
//只有一边有孩子或者没有孩子的情况
if (current.left == null) {
var rightNode = current.right;
return rightNode;
}
//只有一边有孩子或者没有孩子的情况
if (current.right == null) {
var leftNode = current.left;
return leftNode;
}
//寻找最小值
var rightNode = current.right;
while(rightNode.left) {
rightNode = rightNode.left
if(rightNode.left.left == null) {
// 删除最小值
rightNode.left = null;
}
}
rightNode.right = current.right;
rightNode.left = current.left;
return rightNode;
}
}

删除二叉树节点

标签:root   splay   tno   font   isp   树节点   删除   str   strong   

原文地址:https://www.cnblogs.com/CoderZX/p/10496467.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!