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

2018-10-19  本文已影响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);
    }
上一篇 下一篇

猜你喜欢

热点阅读