530. Minimum Absolute Difference in BST

来源:互联网 发布:一分钱图片淘宝怎么弄 编辑:程序博客网 时间:2024/06/05 08:46

Given a binary search tree with non-negative values, find the minimum absolute difference between values of any two nodes.

Example:

Input:   1    \     3    /   2Output:1Explanation:The minimum absolute difference is 1, which is the difference between 2 and 1 (or between 2 and 3).

Note: There are at least two nodes in this BST.

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class Solution {    TreeSet<Integer> set = new TreeSet<>();    int min = Integer.MAX_VALUE;    public int getMinimumDifference(TreeNode root) {        if (root == null) return min;        if (!set.isEmpty()) {            if (set.floor(root.val) != null) {                min = Math.min(min, root.val - set.floor(root.val));            }            if (set.ceiling(root.val) != null) {                min = Math.min(min, set.ceiling(root.val) - root.val);            }        }        set.add(root.val);        getMinimumDifference(root.left);        getMinimumDifference(root.right);        return min;    }}
原创粉丝点击