请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

波波老师你好,有两个问题想请你帮忙解决下!

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);
}

二、波波老师,这段删除最大元素的代码这样写可以吗?

正在回答 回答被采纳积分+3

1回答

提问者 爱西瓜同志 2019-03-14 21:39:38

波波老师,我想通了。不用麻烦你帮我看了

0 回复 有任何疑惑可以回复我~
  • 继续加油!:)
    回复 有任何疑惑可以回复我~ 2019-03-15 00:59:30
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信