请稍等 ...
×

采纳答案成功!

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

老师,找到node.left为空的节点之后 那句代码是删除最小节点的呢

图片描述
老师这段代码有点理解不了 找到node.left为空的节点之后 那句代码是删除最小节点的呢

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

插入代码

1回答

liuyubobobo 2019-07-07 01:45:01

return rightNode; 在整棵二分搜索树中删除了当前找到的这个最小节点node。因为,return的节点跳过了node,直接返回当前node的右节点,到递归的上一层。


在递归的上一层,node.left = removeMin(node.left);接住的不再是原来的node,而是原来node的右节点,删除掉了原来的node。


注意,你给的代码,下面的递归调用,没有 node.left = 这个赋值。这个赋值是删除的核心。只调用removeMin(node.left);达不到删除的目的。


其实,这个过程其实和我们之前课程介绍的链表删除是一模一样的。回忆一下,我们在讲链表删除的时候,微观解读中,是怎么做到删除那个节点的?


也可以在参考一下这个问答,以及这个问答下其他相关问答,再仔细理解一下:)

http://coding.imooc.com/learn/questiondetail/112584.html 


继续加油!:)

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号