美文网首页快乐写代码
T98、验证二叉搜索树

T98、验证二叉搜索树

作者: 上行彩虹人 | 来源:发表于2020-05-27 22:25 被阅读0次

    给定一个二叉树,判断其是否是一个有效的二叉搜索树。
    假设一个二叉搜索树具有如下特征:
    节点的左子树只包含小于当前节点的数。
    节点的右子树只包含大于当前节点的数。
    所有左子树和右子树自身必须也是二叉搜索树。
    示例 1:

    输入:
    2
    /
    1 3
    输出: true
    示例 2:
    输入:
    5
    /
    1 4
    /
    3 6
    输出: false
    解释: 输入为: [5,1,4,null,null,3,6]。
    根节点的值为 5 ,但是其右子节点值为 4 。

    分析发现,需要满足二叉搜索树中序遍历有序。

     int[] temp = new int[10001];
        int i = 0;
        public boolean isValidBST(TreeNode root) {
            mid(root);
            //中序遍历结果为升序
            for(int j = 1;j < i; j++)
                if(temp[j-1] >= temp[j])
                    return false;
            return true;
        }
        public void mid(TreeNode root){
            if(root == null)
                return;
            if(root.left != null)
                mid(root.left);
            temp[i++] = root.val;
            if(root.right != null)
                mid(root.right);       
        }
    

    相关文章

      网友评论

        本文标题:T98、验证二叉搜索树

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