这段程序没有理解

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

30K必胜

2019-01-05


http://img.mukewang.com/szimg/5c303b8500012c1307501000.jpg

写回答

1回答

liuyubobobo

2019-01-05

我们return的rightNode没有赋值给root!而是赋值给上层调用的node的left!注意,课程代码中231行是有意义的!靠231行,你绘制的M链接给了N。M就是递归返回的rightNode;N就是上一层调用的node!

代码传送门:https://github.com/liuyubobobo/Play-with-Data-Structures/blob/master/06-Binary-Search-Tree/11-Remove-Min-and-Max-in-BST/src/BST.java


在我们实现的这个二叉树的递归删除的过程中,删除实际发生的方式,和我们在5-3至5-5所介绍的链表删除操作的递归算法中删除发生的方式是一模一样的。尤其是我们在5-5所介绍的递归过程的微观运行机制。强烈建议再看一遍,之后再回过头,思考一下这一小节的代码中,我们的二叉树的删除发生在什么时候?发生的时机是完全一致的!


加油!:)

1
1
30K必胜
好的 谢谢老师的解答
2019-01-05
共1条回复

玩转数据结构

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

6221 学习 · 1704 问题

查看课程