leetcode 530. 二叉搜索树的最小绝对差
给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。
示例:
输入:
1
\
3
/
2
输出:
1
解释:
最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。
提示:
树中至少有 2 个节点。
本题与 783 https://leetcode-cn.com/problems/minimum-distance-between-bst-nodes/ 相同
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
二叉搜索树的中序遍历就是从小到大输出,所以此处用中序递归遍历二叉树即可。
设置两个变量来记录前一个节点item和最小的插值min。
TreeNode item = null; int min = Integer.MAX_VALUE; public int getMinimumDifference(TreeNode root) { find(root); return min; } public void find(TreeNode node) { if (node== null) { return; } find(node.left); if (item != null) { min = Math.min(node.val - item.val, min); } item = node; find(node.left); }