783. 二叉搜索树节点最小距离

    技术2022-07-17  76

    **给定一个二叉搜索树的根节点 root,返回树中任意两节点的差的最小值。 示例: 输入: root = [4,2,6,1,3,null,null] 输出: 1 解释: 注意,root是树节点对象(TreeNode object),而不是数组。 给定的树 [4,2,6,1,3,null,null] 可表示为下图:

    4 / \ 2 6 / \ 1 3

    最小的差值是 1, 它是节点1和节点2的差值, 也是节点3和节点2的差值。 由于二叉搜索树有以下特点:

    1.若左子树不为空,则梭子树上所有结点的值均小于根结点 2.若右子树不空,则右子树上所有结点值大于根结点 3.左右子树也为二叉搜索树 所以二叉树的中序遍历即为从小到大的排序序列,dfs就是将中序遍历的结果存到数组arr中,只要遍历数组arr,找到相邻项之间最小差,即为所得结果。 被leetcode题吊打的第四天,做个笔记留着学习

    var minDiffInBST = function(root) { var arr=new Array(); var min = Infinity; arr=dfs(root,arr); for(let i=0;i<arr.length-1;i++){ min=Math.min(min,arr[i+1]-arr[i]); } return min; }; // 中序遍历将结点存入arr function dfs(node,arr){ if(node==null) return ; dfs(node.left,arr); arr.push(node.val); dfs(node.right,arr); return arr; }
    Processed: 0.017, SQL: 9