removeMin(root) 的疑问

removeMin(root) 的疑问

// 删除二叉树最小值所在节点,返回最小值
public E removeMin(){
    E ret = minimum();
    removeMin(root); // 这里,应该是要把删除节点后的新的二叉树的根节点重新赋值给root吧? root = removeMin(root);
    return ret;
}

// 删除以node为根的二叉树中的最小值所在节点
// 返回删除节点后新的二叉树的根节点
private Node removeMin(Node node){
    if(node.left == null){
        Node rightNode = node.right;
        node.right = null;
        size --;
        return rightNode;
    }
    node.left = removeMin(node.left);
    return node;
}


bobo老师,在public E removeMin()方法中,第二句,应该要把删除节点后的新二叉树的根节点重新赋值给root吧?

否则,对于只有右子树的二叉树,比如{5,6,7},删除5后,root仍然是5所在节点。

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

登陆购买课程后可参与讨论,去登陆

1回答
liuyubobobo 2022-03-05 18:47:56

赞!你学懂了,是需要的。


在这一小节视频 14:45 的地方,我加上了 root =。(你应该没看到这里,就来提问了:))


也可以参考最终代码 194 行:https://git.imooc.com/class-105/Play-Algorithms-and-Data-Structures/src/master/15-Binary-Search-Tree/13-Remove-Min-and-Max-in-BST/src/BST.java


继续加油!:)

  • 提问者 慕少9186384 #1

    谢谢bobo老师

    2022-03-05 19:35:26
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
算法与数据结构
  • 参与学习       2583    人
  • 解答问题       1082    个

慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师