Leetcode530.二叉搜索树的最小绝对差 Minimum Absolute Difference in BST(Java)
##Tree##
二叉搜索树的最小绝对差
在二叉搜索树的任意结点之间找到最小的绝对差,二叉搜索树的中序遍历是有序序列,相当于在有序序列中找最小绝对差
最小绝对差必然出现在有序序列的相邻结点上
因此中序遍历枚举遍历相邻两结点的差值,记录最小差值
时间复杂度: O(n)
class Solution {
int min = Integer.MAX_VALUE;
int pre = Integer.MAX_VALUE;
public int getMinimumDifference(TreeNode root) {
dfs(root);
return min;
}
public void dfs(TreeNode root) {
if (root == null) return;
dfs(root.left);
min = Math.min(Math.abs(root.val - pre), min);
pre = root.val;
dfs(root.right);
}
}