LeetCode:98

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public boolean isValidBST(TreeNode root) {
if(root==null) {return true;}
return helper(root,Long.MAX_VALUE,Long.MIN_VALUE);
}
public static boolean helper(TreeNode root, long max, long min) {
if(root==null) {return true;}
if(root.val>min && root.val<max){
return helper(root.left,root.val,min) & helper(root.right,max,root.val);
}
return false;

}
}

利用左节点小于根节点,右节点大于根节点的性质,不断更新max和min的值,来限定当前节点值的范围,使用Long的原因是因为有些奇怪的测试用例,比如:[2147483647]。