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