LeetCode 98. 验证二叉搜索树
原题链接
中等
作者:
白流雪
,
2020-07-19 00:55:07
,
所有人可见
,
阅读 440
Java 代码
class Solution {
public boolean isValidBST(TreeNode root) {
return check(root, Long.MIN_VALUE, Long.MAX_VALUE);
}
private boolean check(TreeNode root, long minVal, long maxVal) {
if (root == null) return true;
// 每个节点如果超过这个范围,直接返回false
if (root.val >= maxVal || root.val <= minVal) return false;
// 这里再分别以左右两个子节点分别判断
// 左子树范围的最小值是minVal,最大值是当前节点的值
// 右子树范围的最大值是maxVal,最小值是当前节点的值
return check(root.left, minVal, root.val) && check(root.right, root.val, maxVal);
}
}