给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值。
void inorder(vector<int> &res,TreeNode* root){
if (root==NULL)return;
inorder(res,root->left);
res.push_back(root->val);
inorder(res,root->right);
}
int minDiffInBST(TreeNode* root) {
if (root==NULL)return 0;
vector<int> res;
inorder(res, root);
vector<int> ans;
for (int i=0;i<res.size()-1;i++){
ans.push_back(res[i+1]-res[i]);
}
sort(ans.begin(),ans.end());
return ans[0];
}
网友评论