题解 | #二叉搜索树最小差值#

二叉搜索树最小差值

https://www.nowcoder.com/practice/f8ac976b49bd450887b9281f315186c7

    int i=0;
    int temp;
    int min=0;
    public int minDifference (TreeNode root) {
        // write code here
        minDifferenceOne(root);
        return min;
    }

//中序遍历是递增有序的
    public void minDifferenceOne (TreeNode root) {
        // write code here
        if (root!=null){
            minDifference(root.left);
            if (i>1){
            //如果遍历第(大于2)个值可以减去前面的值与min比较了
                if (root.val-temp<min) min = root.val-temp;           
            }else if (i==1){
                //如果遍历到第二个值 可以得到第一min值
                min = root.val-temp;
                i++;
            }else if(i==0) i++;    //遍历第一个值 无法计算min  不操作;    
            temp=root.val;
            minDifference(root.right);
        }
    }
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务