给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。

    有效 二叉搜索树定义如下:

    • 节点的左子树只包含 小于 当前节点的数。
    • 节点的右子树只包含 大于 当前节点的数。
    • 所有左子树和右子树自身必须也是二叉搜索树。

    示例 1:

    98验证二叉搜索树 - 图1

    1. 输入:root = [2,1,3]
    2. 输出:true

    示例 2:

    98验证二叉搜索树 - 图2

    输入:root = [5,1,4,null,null,3,6]
    输出:false
    解释:根节点的值是 5 ,但是右子节点的值是 4 。
    

    提示:

    • 树中节点数目范围在[1, 104]
    • -231 <= Node.val <= 231 - 1
    class Solution {
    public:
    
        vector<int> a;
        void tra(TreeNode* root){
            if(root==nullptr) return ;
            tra(root->left) ;
            a.push_back(root->val);
            tra(root->right);
        }
    
        bool isValidBST(TreeNode* root) {
            tra(root);
            for (int i = 1; i < a.size(); i++){
                if(a[i]<=a[i-1]) return false;
            }
            return true;
        }
    };