相关习题
LeetCode 110.平衡二叉树257. 二叉树的所有路径 404.左叶子之和 222.完全二叉树的节点个数 513.找树左下角的值 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树 112. 路径总和 113. 路径总和ii
思考
递归不仅能返回值,递归还能携带状态,回溯。
有时需要在递归中判断当前所在节点的深度或高度,则需要携带状态进行递归有时又需要记录多个结果,如路径问题,是否需要回溯,取决于是否要保留多条路径结果
由于Java对象总是按引用传递,所以当遇到答案有多个结果集时,需要用new拷贝后再传入总结果集,不会像c++一样默认按值传递(传拷贝)。
很多题不看当前节点,看的是子节点的身份,如叶子节点,左节点
对于null节点,在不同的题目中,null的含义不一定相同,有些题目,null是合法的终止条件,而有些题目拒绝让遍历结果走到null,null就变成了非法路径。特别在递归函数中,分清null的角色很重要。