删除二叉树节点

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

qq_往事_8

2019-04-07

图片描述
视频中为什么要把递归的值赋给node.left。如果使用递归向下一个左子树移动,不再赋值给node.left可以吗?

写回答

1回答

liuyubobobo

2019-04-08

注意,你截图的程序是有问题的。递归的过程是:

node.left = removeMin(node.left);


removeMin的返回值要给node.left,这点非常重要。


你的问题和以下问题是一致的,请参考:

https://coding.imooc.com/learn/questiondetail/74488.html 

https://coding.imooc.com/learn/questiondetail/110970.html

https://coding.imooc.com/learn/questiondetail/81818.html


请一定结合链表删除,来看这个问题。回忆一下,这和第五章介绍的链表的递归删除,是完全一致的。只不过对于二叉树,要根据值的大小,区别一下左右而已。可以再仔细回顾一下第五章链表的递归删除,尤其是微观解读,理解一下,这个递归删除的结果,为什么一定要返回去:)他们本质是一致的:)


加油!:)

0
0

玩转数据结构

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

6221 学习 · 1704 问题

查看课程