530/783. 二叉搜索树的最小绝对差(简单)

给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。

示例:

输入:

1

3
/
2

输出:
1

解释:
最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst

思路:

中序遍历的相邻两个节点的值相差最小的

代码1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution {
TreeNode pre = null;
int min = Integer.MAX_VALUE;
public int getMinimumDifference(TreeNode root) {
//最小两个节点,所以不用判断root==null情况

//绝对值最小的两个节点,一定是中序遍历的相邻两个节点
//这个遍历就不适合了
inorder(root);
return min;
}
public void inorder(TreeNode root){
if(root==null){
return;
}
inorder(root.left);
if(pre!=null){
min = Math.min(min,root.val-pre.val);
}
pre = root;
inorder(root.right);
}
}