class Solution {
public:
bool isValidBST(TreeNode* root) {
return _isValidBST(root,nullptr,nullptr);
}
bool _isValidBST(TreeNode* root,TreeNode* min,TreeNode* max){
if(root==nullptr){
return true;
}
if(min !=nullptr && root->val <=min->val){
return false;
}
if(max !=nullptr && root->val >=max->val){
return false;
}
return _isValidBST(root->left,min,root)&&_isValidBST(root->right,root,max);
}
};