题目给定一个二叉搜索树的根节点 root,返回树中任意两节点的差的最小值。
学习:
int ans=INT_MAX;
以及使用min 代替
ans=ans<abs(root->val-prev)? ans:abs(root->val-prev);
其余的就和普通中序遍历一样,没有任何技术含量
class Solution {
public:
void dfs(TreeNode* root, int& pre, int& ans) {
if (root == nullptr) {
return;
}
dfs(root->left, pre, ans);
if (pre == -1) {
pre = root->val;
} else {
ans = min(ans, root->val - pre);
pre = root->val;
}
dfs(root->right, pre, ans);
}
int getMinimumDifference(TreeNode* root) {
int ans = INT_MAX, pre = -1;
dfs(root, pre, ans);
return ans;
}
};