持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第23天,点击查看活动详情🚀🚀
前言
这一块的主要内容还是以卡哥的内容为主,如果想看更好的总结当然还是去卡哥主页去看,如果不嫌弃我的小伙伴也可以看下去。算法这里个人主要还是以个人笔记为主~
卡哥地址 👉👉 代码随想录 (programmercarl.com)
二叉树的修改与构造
226. 翻转二叉树 - 力扣(LeetCode)
采用后序遍历,找到左右子节点,然后互换位置
106. 从中序与后序遍历序列构造二叉树 - 力扣(LeetCode)
主要在于怎么寻找分割点,以及了解中序遍历和后序遍历的特点
654. 最大二叉树 - 力扣(LeetCode)
这题和上一题也比较像,还是分割区间,唯一加了一个地方就是寻找数组的最大值。
617. 合并二叉树 - 力扣(LeetCode)
用层序遍历,然后分情况讨论即可~
二叉搜索树的属性
700. 二叉搜索树中的搜索 - 力扣(LeetCode)
中序遍历,然后返回目标结点。这里还要另外提一点,就是并不是仅仅找到目标结点返回即可,还要把该返回值一层一层传递下去。
98. 验证二叉搜索树 - 力扣(LeetCode)
这题简直不要太经典了,直接利用二叉搜索树的特性,中序遍历的数组是一个递增的数组,如果一个二叉树中序遍历后得到的数组符合递增这一特性就是二叉搜索树咯~
501. 二叉搜索树中的众数 - 力扣(LeetCode)
这里涉及到找众数,即频率最高的那个数。这时我们可以用map这个数据结构存储起来(当然不要忘了map的api),然后在寻找众数的时候也要注意,众数可能不止只有一个。
538. 把二叉搜索树转换为累加树 - 力扣(LeetCode)
这里主要来个右中左这种特殊的遍历情况即可~不难