题目

解题思路

  1. 需要当前节点的值和父节点作比较,所以基础方法无法满足需要对方法进行重载或建立新的函数;
  2. val的值超出Integer.MAX_VALUE所以需要通过Long的最大最小值来进行初始化赋值;
  3. 循环结束条件,当前节点为空;
  4. 限定当前节点val的取值范围,并进行递归循环。

代码展示

class Solution {
    public boolean isValidBST(TreeNode root) {
        return isVaild(root, Long.MIN_VALUE, Long.MAX_VALUE);
    }

    public boolean isVaild(TreeNode root, long min, long max){
        if (root == null) {
            return true;
        }
        long x = root.val;
        return min < x && x < max && isVaild(root.left, min, x) && isVaild(root.right, x, max);
    }
}
12-08 18:17