1.平衡二叉树:代码随想录
1.此题要注意终止返回条件,除了遇到空节点要返回之外,遇到了非平衡子树也要返回-1。
2.二叉树的所有路径:代码随想录
1.注意,在本题代码中,前序遍历的逻辑:中左右,在处理节点时(也就是中)要将处理的代码写在判断终止条件代码之前,防止叶子节点不能被送到结果中。
2.为何path中最后一个节点要单独插入?因为for循环中最后一个符号是->,最后一个节点的数值要放在->的后面所以单独存放。
3.自己动手画一下,模拟一下(用简单的三层二叉树)代码中回溯的过程,一层层往上。体会一下回溯的感觉。
4.string可以用+=来往后添加内容。
5.注意traversal的返回值为void,不返回任何值,对传入的result操作。
6.用这种写法时输入的形参要加上引用。
3.左叶子之和:代码随想录
1.“递归的遍历顺序为后序遍历(左右中),是因为要通过递归函数的返回值来累加求取左叶子数值之和。”这句话是代码随想录中的原话,但是我不是很懂这句话的意思。
2.注意本题判断左叶子节点的方法,是通过判断父节点来间接判断子节点是不是左叶子节点,可以通过这个题打开判断思路。
3.画出草图,跟着代码来一遍感受递归的过程,一步步往上,注意leftval是先触发终止条件初值为0,之后返回其父节点判断,若为左叶子节点再改变其值。
4.递归的作用是遍历所有节点,采用递归的基本模式就是把遍历所有节点,找出符合要求的节点再对其进行操作。