530. Minimum Absolute Difference in BST

Given a binary search tree with non-negative values, find the minimumabsolute differencebetween values of any two nodes.

Example:

Input:


   1
    \
     3
    /
   2


Output:

1


Explanation:

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 {
    public int getMinimumDifference(TreeNode root) {
        List<Integer> list = new ArrayList<>();

        dfs(root, list);

        int ans = Integer.MAX_VALUE;
        for (int i = 1; i < list.size(); i++){
            ans = Math.min(ans, list.get(i) - list.get(i - 1));
        }

        return ans;
    }

    private void dfs(TreeNode root, List<Integer> list){
        if (root == null) return;

        dfs(root.left, list);
        list.add(root.val);
        dfs(root.right, list);
    }
}

results for ""

    No results matching ""