个人认为这样的递归十分巧妙,这里pre的妙用需要多体会
class Solution {
public:
TreeNode *pre;
bool isValidBST(TreeNode* root) {
if(root == nullptr) return true;
int left = isValidBST(root->left);
if(pre != nullptr && pre->val >= root->val) return false;
pre = root;
bool right = isValidBST(root->right);
return left && right;
}
};