波波老师你好,有两个问题想请你帮忙解决下!
来源:6-11 删除二分搜索树的最大元素和最小元素
爱西瓜同志
2019-03-14
private Node removeMin(Node node){
1、 if (node.left == null){
2、 Node rightNode = node.right;
3、 node.right = null;
4、 size --;
5、 return rightNode;
6、 }
node.left = removeMin(node.left);
return node;
}
一、如果这个树只有一个root根元素,那么这段代码运行到5的时候就不再运行了,返回一个null,而且size也从原本的1变成了0,但是这段代码并没有删除根元素啊?
//删除最大元素
public A removeMax(){
if (size == 0)
throw new IllegalArgumentException(“BST is Empty!”);
return removeMax(root);
}
private A removeMax(Node node){
if (node.right == null){
if (node.left == null){
Node cur = node;
node = null;
return cur.a;
}else{
Node cur = node;
node = node.left;
return cur.a;
}
}
return removeMax(node.right);
}
二、波波老师,这段删除最大元素的代码这样写可以吗?
写回答
1回答
-
爱西瓜同志
提问者
2019-03-14
波波老师,我想通了。不用麻烦你帮我看了
012019-03-15
相似问题