1、题目
https://leetcode-cn.com/problems/validate-binary-search-tree/submissions/
2、题意
题解1:中序遍历为升序
若当前节点为>min并且<max则符合情况
若递归左子树说明左边树要val则将max更新为root->val;
右子树>root->val min更新为root->val
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
bool isValidBST(TreeNode* root) {
return dfs(root,LONG_MIN,LONG_MAX);
}
bool dfs(TreeNode* root,long long min,long long max)
{
if(!root) return 1;
if(root->val<=min||root->val>=max) return 0;
return dfs(root->left,min,root->val)&&dfs(root->right,root->val,max);
}
};