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



