请稍等 ...
×

采纳答案成功!

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

删除二叉树节点

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

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

1回答

liuyubobobo 2019-04-08 04:47:05

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

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 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信