波波老师,删除最小节点 代码有点没懂

来源:6-11 删除二分搜索树的最大元素和最小元素

慕运维8677934

2019-05-07

图片描述
为何删除了左结点 右节点是他的根节点 这点没明白

写回答

1回答

liuyubobobo

2019-05-07

看一看,这个问答是不是就是你的问题?https://coding.imooc.com/learn/questiondetail/96268.html


这里的关键是,这个函数处理的是以node为根节点的二分搜索树(不是root),删除他的最小值,返回新的二分搜索树的根。如果node这个根节点的左子树为空,那么node就是要删除的节点。删除以后,就剩下node的右子树了。(因为左子树为空)


删除的结果,将传回给上一层递归调用,而不是root。其实,这个过程,和我们之前在第五章讲的链表的递归删除,是完全一样的。只不过链表不分左右而已:)


可以创建一个小型的二分搜索树,然后删除其中的最小值,跟踪一下整个删除过程,再仔细体会一下。建议一定对比链表的递归删除,把其中的逻辑想明白:)


加油!:)

0
1
慕运维8677934
非常感谢老师,意思是删除了最小节点之后 他的右子树作为这个二叉树的跟返回
2019-05-07
共1条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程