美文网首页
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