树的基本面试题

  1. 前中后遍历 二叉树 (递归)
    不要想复杂 栈当中会帮助我们回溯 就顺序的递归就好了

  2. 层序遍历 记得深拷贝 BFS模板
    在这里插入图片描述

  3. 重建二叉树 想明白help递归函数的意义是什么 是返回当前的树的根节点 对吧 先要想清楚函数设立的意义 才能写出来返回值
    所以help要有返回值 然后设置左右节点

  4. DFS 树的最大深度 树的镜像 这些都是简单递归 不要想复杂 就+1 和设置左右孩子就好

  5. 在这里插入图片描述

  6. 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进行一个记录 位置的操作
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值