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; } }; ```