代码随想录 day21 二叉搜索树的最小绝对差 二叉搜索树中的众数 二叉树的最近公共祖先

二叉搜索树的最小绝对差

二叉搜索树就是有序数组
那么转换一下就很简单了

也可以直接在遍历二叉搜索树的时候进行比较
需要一个指针记录前一个节点

二叉搜索树中的众数

既可以把这题的二叉搜索树当成一般树来做
这样就是层序遍历树然后用map记录频率
再取频率最高的值

这里用了中序遍历二叉搜索树 这样就是一个有序数组
那么就比较相邻的就可以了

这里注意pre的设置
最大众数集合的取得
直接放入maxCount
当我们取得更大的Count的时候
把原来的数组清空 把这个count放进去
这样有多个相同频次的众数的时候
就可以通过前一个if放入

二叉树的最近公共祖先

既然是找祖先 当然希望自底向上搜索
那么回溯就可以做到这点
后序遍历就是回溯
左右中

如果还要对返回值进行后续处理 就要用变量接住
如果不用就直接递归

左右子树都返回空 就说明没找到
左右子树都不为空那么就是根是祖先

如果一边为空呢

这个图说明了为什么一边为空另一边不为空的时候 返回不为空的一边子树

posted @ 2024-01-16 21:49  又见鸣蜩  阅读(11)  评论(0)    收藏  举报