validate BST in C++

```
class Solution {
    TreeNode * save = NULL;  
public:
    bool isValidBST(TreeNode* root) {
        if(root == NULL) return true;
        if(!isValidBST(root->left)) return false;
        if(save != NULL && root->val <= save->val) return false; 
        save = root;
        if(!isValidBST(root->right)) return false;
        
        return true;
    }
};
```