98. 验证二叉搜索树
题目描述
给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。
有效 二叉搜索树定义如下:
节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。
解题思路
class Solution {
public:
bool f(TreeNode*r,long long l,long long ri){
if(!r)return 1;
if(r->val>=ri||r->val<=l)return 0;
return f(r->left,l,r->val)&&f(r->right,r->val,ri);
}
bool isValidBST(TreeNode* r) {
return f(r,(long long)(-2147483648)-1,(long long)2147483647+1);
}
};
学习感想
int 范围好坑啊
f(r,-2147483648-1,2147483647+1);
这样不会自动类型转换成longlong