持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第26天,点击查看活动详情🚀🚀
二叉树公共祖先问题
236. 二叉树的最近公共祖先 - 力扣(LeetCode)
这里要注意的地方是当找到了目标值返回root结点并将该值向上传递时,也要分三种情况讨论。
235. 二叉搜索树的最近公共祖先 - 力扣(LeetCode)
思路还是和二叉树一样,只不过这里可以利用二叉搜索树的特性去找到目标结点
二叉搜索树的修改与构造
这类题还是比较简单的,利用二叉树搜索树的特性,找到要在哪创建结点,并层层返回即可~
450. 删除二叉搜索树中的节点 - 力扣(LeetCode)
这里就有点难了,删除目标结点后,不仅要将该结点的左右结点位置进行一个调整,还要将上一层根节点与该结点的右结点进行一个连接、
669. 修剪二叉搜索树 - 力扣(LeetCode)
这种重构二叉树结构的题,其实难度也有限。
找到与条件不符合的点之后,就进行结点的删除,以及判断要删除结点的结构中有没有是在条件范围内的,并将其返回。
总之没有想象中那么难了~
108. 将有序数组转换为二叉搜索树 - 力扣(LeetCode)
这道题的难点就在,首先要思考如何重构一个二叉搜索树,所以这里就用二叉树的特性,小的放左边,大的放右边。
另外一个难点就是如何处理边界了,这里注意一下slice的使用即可。