分析
中序遍历保存前一个的值,然后每次更新得到前一节点和当前节点的最小差值。
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;
}
};