leetcode 98. 验证二叉搜索树
题意
判断一个二叉树是不是二叉搜索树
思路
每当我们进入一个点时 , 需要思考该点的范围是否在开区间内
考虑已经知道其父节点的区间范围 , 那么如果是左孩子 , 将其上界减小 ; 如果是右孩子 , 将其下界提高
代码
class Solution {
public:
const long long int INF = 1e10+10;
bool dfs(TreeNode* root,long long int upper,long long int lower)
{
if(!(root->val <upper && root->val > lower))
return false;
if(root->left)
{
if(!dfs(root->left,root->val,lower))
return false;
}
if(root->right)
{
if(!dfs(root->right,upper,root->val))
return false;
}
return true;
}
bool isValidBST(TreeNode* root) {
if(root == nullptr)
return true;
return dfs(root,INF,-INF);
}
};

浙公网安备 33010602011771号