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

image
image

本题重点是记录怎样在“递归遍历中记录前后两个指针”

  1. 设一个指针pre,而递归函数的参数就是cur。

  2. 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;
    }
};
posted @   NeroMegumi  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示