美文网首页
530. 二叉搜索树的最小绝对差

530. 二叉搜索树的最小绝对差

作者: 小时候浪死了 | 来源:发表于2018-10-19 08:53 被阅读0次

给定一个所有节点为非负值的二叉搜索树,求树中任意两节点的差的绝对值的最小值。
(以下是参考他人的)

解:二叉树搜索树的中序遍历是升序序列

public:
    int getMinimumDifference(TreeNode* root) {
        int res=INT_MAX,pre=-1;
        Inoder(root,res,pre);
        return res;
    }
private:
    void Inoder(TreeNode* root,int &res,int &pre){//这里的两个参数都要用到引用,因为是递归调用,如果不用引用,则深层改变后的值不会影响到第一层递归的调用
        if(!root)
            return;
        Inoder(root->left,res,pre);
        if(pre!=-1)
        {
            res=min(res,root->val-pre);//res最初是int最大值,现在根据min得出更小的
        }
        pre=root->val;
        Inoder(root->right,res,pre);
    }

相关文章

网友评论

      本文标题:530. 二叉搜索树的最小绝对差

      本文链接:https://www.haomeiwen.com/subject/honezftx.html