LeetCode 530. 二叉搜索树的最小绝对差

目录结构

1.题目

2.题解


1.题目

给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。

示例:

输入:

   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
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2.题解

中序遍历。

public class Solution530 {

    @Test
    public void test530() {
        TreeNode root = new TreeNode(2);
        root.left = new TreeNode(1);
        root.right = new TreeNode(8);
        root.right.left = new TreeNode(5);
        System.out.println(getMinimumDifference(root));
    }

    Integer min = Integer.MAX_VALUE, prev = null;
    public int getMinimumDifference(TreeNode root) {
        inorder(root);
        return min;
    }

    public void inorder(TreeNode root) {
        if (root != null) {
            inorder(root.left);
            if (prev != null) {
                min = Math.min(min, root.val - prev);
            }
            prev = root.val;
            inorder(root.right);
        }
    }
}
  • 时间复杂度:O(n)
  • 空间复杂度:O(h)

你可能感兴趣的:(LeetCode,leetcode)