Idea
二叉搜索树:其中序遍历的数列是从小到大有序的。
所以我们要找最小的绝对差,肯定是中序遍历中两个相邻的数。
因此我们只需要用一个变量 pre 存中序遍历上一个的值即可。
AC Code
class Solution {
public:
int pre = -1,ans = 100000;
void inorder(TreeNode* root){
if(!root) return ;
inorder(root->left);
if(pre == -1) pre = root->val;
else{
ans = min(ans,abs(pre - root->val));
pre = root->val;
}
inorder(root->right);
}
int getMinimumDifference(TreeNode* root) {
inorder(root);
return ans;
}
};