代码随想录算法训练营第二十天|530.二叉搜索树的最小绝对差|501.二叉搜索树中的众数|236. 二叉树的最近公共祖先

一、530.二叉搜索树的最小绝对差

思想:1.由于是二叉搜索树,所以我们选择中序递归。2.由于要求最小绝对差,所以可以利用双指针。

代码随想录算法训练营第二十天|530.二叉搜索树的最小绝对差|501.二叉搜索树中的众数|236. 二叉树的最近公共祖先_第1张图片

二、 501.二叉搜索树中的众数

思想:依旧选择递归,虽然遍历可以但我们这里不用,由于是二叉搜索树,我们依旧选择中序递归,主要的差异是使用count,和max_count来控制我们的众数,这里的思想还是很牛逼的,即当pre和cur的值相等count+1,如果不等count依旧为1,如果count和max_count相等就把root的值加进去,如果count的值大于max-count就将result清空,更新max-count,添加root.val进去

代码随想录算法训练营第二十天|530.二叉搜索树的最小绝对差|501.二叉搜索树中的众数|236. 二叉树的最近公共祖先_第2张图片

三、 236. 二叉树的最近公共祖先

思想:这题其实代码很简单,主要是思想。1.明确顺序,从下往上,处理更简单,因为需要返回值,所以我们采用后续递归;如果一个节点的值等于p或者q就返回这个节点,这种情况包含了p,q属于同一个节点以及其中一个节点作为另一个节点的父节点的情况。

代码随想录算法训练营第二十天|530.二叉搜索树的最小绝对差|501.二叉搜索树中的众数|236. 二叉树的最近公共祖先_第3张图片

 

你可能感兴趣的:(算法,数据结构)