-
前中后遍历 二叉树 (递归)
不要想复杂 栈当中会帮助我们回溯 就顺序的递归就好了 -
层序遍历 记得深拷贝 BFS模板
-
重建二叉树 想明白help递归函数的意义是什么 是返回当前的树的根节点 对吧 先要想清楚函数设立的意义 才能写出来返回值
所以help要有返回值 然后设置左右节点 -
DFS 树的最大深度 树的镜像 这些都是简单递归 不要想复杂 就+1 和设置左右孩子就好
-
last
lastPost[]相当去hashmap记录着每一个arr[i]数组元素对应的位置i+1 比如arr[0]=2 那么lastPos[2]=1 也就是数组元素值为2的出现在第一个位置上
如果lastpod对应的值变化了说明出现了重复的数值 每一次都要为具体的数值进行赋值 所以有了最下面的一句话
start 就是前面的指针 如果lastpod[index]在还没有复制i+1的时候就已经有了值 那说明他已经是重复出现的字母 就会让start 重新指向这个数字的位置
比如2第一次出现时lastPod[2]=1 在arr【0】
那么当他第二次出现的时候是在arr[4] 此时lastpod[2]还没有到赋值的一步 本应该是默认值0 但是却有值 说明四重复的 于是就将start进行更新
res本来就应该是不断变化的 由于start本来就写的是具体的位置 所以应该写成i+1-start
记得最后为lastPods赋值 相当于map进行一个记录 位置的操作