513:
思路解析:代码随想录
总结:递归有点难理解终止条件和单层处理逻辑中的回溯,所以先用迭代法(层序遍历)实现容易很多:找最后一层的从左到右第一个节点。
112,113
思路解析:代码随想录
总结:也是用回溯。113是112的完善题目,其实用113的方法也可以解决112.113中定义了两个全部变量,其实这两个全局变量可以作为参数递归传进去(参考查找整棵树的路径)。难点在于理解终止条件和处理逻辑:终止条件不再是cur为null的时候,或者叶子节点的时候,而是总和为sum的时候。查找整棵树的路径这个题目的终止条件是为cur为null的时候,或者到达叶子节点的时候。另外,到达终止条件的时候,是直接返回的时候,那么返回什么值呢?答案是整棵树的遍历,不返回,部分遍历,返回参数或者将结果加入到result中。处理逻辑上,就是左右子树的处理,处理的时候需要把当前节点的值先处理掉,然后再去递归。递归完了,别忘记回溯,一一对应。
106,105
思路解析:代码随想录
总结:理论知道,就是没法很有逻辑和条理分明的表达出来(这是我的弱点)。以 后序数组的最后一个元素为切割点,先切中序数组,根据中序数组,反过来再切后序数组。一层一层切下去,每次后序数组最后一个元素就是节点元素。后序数组的切割也是难点:此时有一个很重的点,就是中序数组大小一定是和后序数组的大小相同的(这是必然)。
1、思路其实比较简单,但是真正代码实现出来并不容易。所以要避免眼高手低,踏实地把代码写出来。
2、优化和调试
3、打日志
切记:不要大脑模拟,那样越想越糊涂!!
本文讨论了递归算法的难点,如理解终止条件和处理逻辑,提倡使用迭代法(层序遍历)代替。重点提到在113题中,终止条件不再是单一标准,而是总和达到目标。作者强调理论知识转化为实际代码的重要性,以及避免大脑模拟和优化调试的实践技巧。
790

被折叠的 条评论
为什么被折叠?



