leetcode-530. Minimum Absolute Difference in BST
530. Minimum Absolute Difference in BST
Given a binary search tree with non-negative values, find the minimum absolute difference between 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.
题意:找出二叉搜索树中,结点差值最小的差值。
解法:因为要找出结点差值最小的值,本来是要遍历N*N才能找到的,但是因为是二叉搜索树,中序遍历的结构就是有序的,最小差值肯定是相邻结点的差值中的一个,所以只要O(n)就可以了。
public class Solution { int min = Integer.MAX_VALUE; Integer prev = null; public int getMinimumDifference(TreeNode root) { if (root == null) return min; getMinimumDifference(root.left); if (prev != null) { min = Math.min(min, root.val - prev); } prev = root.val; getMinimumDifference(root.right); return min; } }