
求解代码
之所以加上min和max,是因为二叉搜索树需要满足整棵左子树的所有节点都要小于根,整棵右子树的所有节点都要大于根。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public boolean isValidBST (TreeNode root) {
return isValidBST(root, null, null);
}
boolean isValidBST(TreeNode root, TreeNode min, TreeNode max){
if(root == null){
return true;
}
if(min!=null&&root.val<=min.val){
return false;
}
if(max!=null&&root.val>=max.val){
return false;
}
return isValidBST(root.left,min,root)&&isValidBST(root.right,root,max);
}
|