BST:对于任意的node x,如果node y是node x的左边的节点, 那么Key(y) <= Key(x); 对于任意的node x, 如果node y 是node x的右边的节点, 那么key(y)>=key(x).
通过遍历左右节点判断其大小即可,或者也可以中序遍历整个数,将其存储在一个数组中,若数组是从小到大排序的,则说明BST是valid的
bool isValid(TreeNode *root,long min,long max)
{
if(!root)return true;
if(root->val<=min||root->val>=max)return false;
return isValid(root->left,min,root->val)&&isValid(root->right,root->val,max);
}
bool isValidBST(TreeNode* root) {
return isValid(root,LONG_MIN,LONG_MAX);
}