513.找树左下角的值
思路:用迭代模板法,找到最后一层取第一个元素
递归的话首先要找到最后一行,深度最大的叶子节点一定是最后一行,使用前序遍历找到最左边
112. 路径总和
思路:
递归:入参用根节点和目标和,终止条件是叶子节点和count==0返回true 否则返回false,递归函数返回true直接返回,其他返回false
113.路径总和ii
思路:
递归:这里递归函数就不需要返回值,记录等于目标数的集合;
回溯还是比较重要,用List<Integer>path=newLinkedList<>();记录path集合,递归返回后需要移除当前节点
106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树
思路:
递归六步学习了:
第一步:如果数组大小为零的话,说明是空节点了。
第二步:如果不为空,那么取后序数组最后一个元素作为节点元素。
第三步:找到后序数组最后一个元素在中序数组的位置,作为切割点
第四步:切割中序数组,切成中序左数组和中序右数组 (顺序别搞反了,一定是先切中序数组)
第五步:切割后序数组,切成后序左数组和后序右数组
第六步:递归处理左区间和右区间
代码实现起来不是很容易。