题目虽然简单,但是也要把答案写的这么简单才好。
确定节点的左右边界,这个思路我没看到有人这么做,可以作为这类题的一个通用的思路。
bool isValidBST(TreeNode* root) { // write code here return isValidBSTTree(root,INT_MIN,INT_MAX); } bool isValidBSTTree(TreeNode* root,int leftVal,int rightVal) { if(root == NULL){ return true; } if(root->val < leftVal || root->val > rightVal){ return false; } return isValidBSTTree(root->left,leftVal,root->val) && isValidBSTTree(root->right,root->val,rightVal); }