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).
class Solution { int min = Integer.MAX_VALUE; TreeNode pre = null; public int getMinimumDifference(TreeNode root) { if(root == null) return min; getMinimumDifference(root.left); if(pre != null) min = Math.min(min, root.val - pre.val); pre = root; getMinimumDifference(root.right); return min; } }
BST inorder遍历是从小到大的,所以我们比较相邻两个的diff就能得到min,pre可以设成数字或者node都可以