老师最后一个return不理解
来源:1-4 改进添加操作:深入理解递归终止条件
慕用2297853
2022-02-09 11:46:21
相关截图:
老师,折最后一个return 为什么会返回一个node,是为了什么呢,有点不明白,求指点
1回答
liuyubobobo
2022-02-09
如果你不 return,相当于在这个逻辑下,你的 add 函数的返回值是 void。那么整个问题其实和这一小节所讲的问题是完全一样的。只不过一个在链表中,一个在二叉树中。
https://class.imooc.com/lesson/1580#mid=36148
你所实现的 add 代码,类似于这页 ppt 右侧的链表的 add 代码:
==========
我的建议是:
1)再看一遍这一小节,在链表中,理解我在这一小节介绍的代码,add 返回值是 void 为什么是错误的,为什么要 return 一个 node。(包括这一小节开始介绍的 remove 的逻辑也是如此。)
2)再反过来看一遍这个 BST 的插入代码,用类似的逻辑分析,看你是否能够理解这里为什么要 return。
3) 实际上在代码中,按照你自己的设想,把 return 扔掉,然后尝试添加几个元素,看是否成功添加了?如果发现没有成功添加,用单步跟踪的方式看一看,程序每步都是怎么执行的?每步执行之后,各个变量都发生了什么变化?(或者没有发生什么你所期望发生的变化?)为什么会这样?再结合上面链表一小节,仔细理解一下,程序执行的过程到底发生了什么?
继续加油!:)
相似问题
回答 1
回答 1