Day20 ● 654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树

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

题目
题解

二叉搜索树,用什么方法不用我多说了吧.
我的代码:

var getMinimumDifference = function(root) {
    let arr = []
    const DFS = function(node){
        if(node){
            DFS(node.left);
            arr.push(node.val);
            DFS(node.right);
        }
    }
    DFS(root);
    const result = Math.abs(arr[1]-arr[0])
    return result
};

结果只通过了1/5的test case
打印了下想明白了,不是第一个和第二个的差就是最小的,你得算n-1个gap而不只是第一个和第二个的


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

题目
题解

看到二叉搜索树,第一反应中序遍历转为有序数组操作,但是对数组的操作开始陌生了.

  • js里没法new List(),去复习前面的part
  • 大概想起来是用快慢指针,但是不知道怎么移动.(不要只想着slow,fast,要记得还可以是cur,pre)

以及写完了发现读题读错了,人家要的不是重复元素,人家要的是出现频率最多的元素.

用的是快慢指针,定义是pre 和cur,用pre指向cur的前一个节点,是在遍历的时候就操作了.如果想在外面操作也行,也可以用多余空间建一个map


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

题目
题解

再别说了,后序我知道,因为要从底下开始, 处理逻辑其实挺明朗的,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容