关于递归过程中给左右节点赋值的问题

来源:5-3 二分搜索树的节点插入

慕标4204065

2019-05-09

老师您好 既然insert函数的返回结果是当前树的根节点 那么node.left/node.right作为参数传进去的返回就是node本身的左右孩子 为什么还要将函数的返回值赋值给node.left/node.right 这点不是很明白 我个人理解在java中是多余的操作 希望老师给予解答

写回答

1回答

liuyubobobo

2019-05-09

对于这个返回值的复制,最关键的意义,在于node == null的时候。


此时,我们只返回了new Node(key, value);返回这样一个new出来的节点,是不能把这个节点挂接在树上的。我们是靠把返回值赋值给上一层递归的node.left或者node.right,将这个新节点挂接在树上的。


也可以参考这里:https://coding.imooc.com/learn/questiondetail/32872.html


继续加油!:)

0
0

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程