[LeetCode98]98. Validate Binary Search Tree判断二叉搜索树

判断二叉搜索树的方法是:

中序遍历形成递增序列

//全局变量记录中序遍历产生的序列,因为要递归,所以要用全局变量
    List<Integer> list = new ArrayList<>();
    public boolean isValidBST(TreeNode root) {
        /*
        这里要注意二叉搜索树的左子树的每个节点都要小于根节点,不只是左孩子,右子树也同样,
        常犯的一个错误就是只是判断了左孩子和右孩子
        正确方法是:中序遍历法,中序遍历之后的结果是一个递增序列
        判断是否是二叉搜索树的方法是:中序遍历法,记住
         */
        if (root==null) return true;
        inOrder(root);
        for (int i = 1; i < list.size(); i++) {
            if (list.get(i)<=list.get(i-1))
                return false;
        }
        return true;
    }
    void inOrder(TreeNode root){
        if (root==null)
            return;
        inOrder(root.left);
        list.add(root.val);
        inOrder(root.right);
    }
原文地址:https://www.cnblogs.com/stAr-1/p/8327795.html