leetcode530. 二叉搜索树的最小绝对差

分析

中序遍历保存前一个的值,然后每次更新得到前一节点和当前节点的最小差值。

class Solution {
public:
    void inorder(TreeNode* root,int &pre,int &ans){
        if(root==nullptr)return ;
        inorder(root->left,pre,ans);
        if(pre==-1){
            pre=root->val;
        }else{
            ans=min(abs(root->val-pre),ans);
            pre=root->val;
        }
        inorder(root->right,pre,ans);
    }
    int getMinimumDifference(TreeNode* root) {
        int pre=-1,ans=INT_MAX;
        inorder(root,pre,ans);
        return ans;
    }
};