代码随想录——25二叉搜索树的最小绝对值差(递归遍历如何记录前后两个指针)


本题重点是记录怎样在“递归遍历中记录前后两个指针”
-
设一个指针pre,而递归函数的参数就是cur。
-
pre不为空则执行操作,操作结束了pre = cur(包含了pre为空的情况)
代码:
class Solution {
public:
int ans = INT_MAX;
TreeNode* pre;
void dfs(TreeNode* root){
if(root == nullptr)return;
dfs(root->left);
// if(pre == nullptr){
// pre = root;
// }else{//蠢的没边了——传进来的root不就是cur节点吗
// }
if(pre!=nullptr){
ans = min(root->val - pre->val,ans);
}
pre = root;
dfs(root->right);
}
int getMinimumDifference(TreeNode* root) {
dfs(root);
return ans;
}
};
浙公网安备 33010602011771号