530.二叉查找树的最小确实差(javascript)530.MinimumAbsoluteDifferenceinBST
原创给你一个二进制搜索树的根节点。 root ,返回 树中任意两个不同节点值之间的最小差值。 。
差值是正数,其值等于两个值之间差值的绝对值。
Given the root of a Binary Search Tree (BST), return the minimum absolute difference between the values of any two different nodes in the tree.
示例 1:
输入:root = [4,2,6,1,3]
输出:1示例 2:
输入:root = [1,0,48,null,null,12,49]
输出:1提示:
- 树中的节点范围为 [2, 104]
- 0 <= Node.val <= 105
Number.MAX_SAFE_INTEGER 常量表示in JavaScript 中最大的安全整数(maxinum safe integer)(2^53 - 1)。
before对于前一个值,因为我不知道,所以只定义了未赋值。
minDifference 为表示在 JavaScript 中最大的安全整数
二叉树中顺序遍历的本质:二叉树的顺序遍历序列是一个非递减的顺序序列。我们可以发现重复的数字必须是连续的
本主题要求任何两个节点之间的差异最小,这必须出现在增量排列后的相邻节点值之间。
找到最小值后,将更新最小值。
var getMinimumDifference = function (root) {
    let before, minDifference = Number.MAX_SAFE_INTEGER;
    var dfs = function (root) {
        if (!root) return
        dfs(root.left)
        if (root.val - before < minDifference) {
            minDifference = root.val - before
        }
        before = root.val
        dfs(root.right)
    }
    dfs(root)
    return minDifference
};
var getMinimumDifference = function (root) {
    let before, minDifference = Number.MAX_SAFE_INTEGER;
    var getMinimum = function (val) {
        if (val - before < minDifference) {
            minDifference = val - before
        }
        before = val
    }
    var dfs = function (root) {
        if (!root) return
        dfs(root.left)
        getMinimum(root.val)
        dfs(root.right)
    }
    dfs(root)
    return minDifference
};
var dfs = function (root) {
        if (!root) return//!root为true节点不必执行逻辑来结束递归。
        dfs(root.left) 先递归左子树,然后先处理左子树中的节点
        getMinimum(root.val)// 处理完左子树的节点后,取当前节点。这是您的处理逻辑,可以在这里编写或提取。
        dfs(root.right)// 递归右子树,处理右子树中的节点
    }版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
 itfan123
itfan123







