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);
    }

posted @ 2021-05-11 14:01  旺仔古李  阅读(36)  评论(0编辑  收藏  举报