public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param root TreeNode类 
     * @return bool布尔型
     */
    public boolean isValidBST (TreeNode root) {
        // write code here
        if(root==null) return true;
        Queue<TreeNode> queue=new LinkedList<>();
        queue.add(root);
        while(!queue.isEmpty()){
            int count=queue.size();
            TreeNode node=queue.poll();
            while(count!=0){
                int cur=node.val;
            if(node.left!=null){
                int left=getValue(node.left);
                if(cur<=left) return false;
                queue.add(node.left);
            }
            if(node.right!=null){
                int right=getValue(node.right);
                if(cur>=right) return false;
                queue.add(node.right);
            }
            count--;     
            }
        }
        return true;
    }
    private int getValue(TreeNode root){

        return root.val;
    }