day21
夸夸 自己写对了一大半
思路:双指针
不断比较差值,并且更新res
这里学到新的:
关于使用递归是否需要接住返回值
看情况
这里使用递归函数是主要是为了遍历,而不需要得到返回值。res已经在每次迭代中不断更新了。
因为这里res的值是全局遍历!
二刷的错误点:
res 没有赋值,必须赋值!
class Solution {
public:
TreeNode* pre = nullptr;
int res = INT_MAX;
int getMinimumDifference(TreeNode* root) {
if(root == nullptr)
return 0;
getMinimumDifference(root->left);
if(pre != nullptr )
res = min(res, root->val - pre->val);
pre = root;
getMinimumDifference(root->right);
return res;
}
};