思路很好想到,利用中序遍历进行检验,那么只需要用一个pre来记录当前结点的前一个结点的val即可。
class Solution {
private:
long pre = LONG_MIN;
public:
bool isValidBST(TreeNode* root) {
if (!root)
return true;
if (!isValidBST(root->left))//左子树已经完成判断
return false;
if (root->val <= pre)
return false;
pre = root->val;
return isValidBST(root->right);//右子树已经完成判断
}
};