用递归来实现。需要保证根节点左边都比根节点的数值小;根节点右边都比根节点的数值大
public class Solution {
public boolean isValidBST(TreeNode root) {
return isValidBST(root, null, null);
}
public boolean isValidBST(TreeNode root, Integer min, Integer max) {
if (root == null) return true;
if ((min != null && root.val <= min) || (max != null && root.val >= max)) return false;
if (root.left != null) {
if (root.left.val >= root.val) return false;
}
if (root.right != null) {
if (root.right.val <= root.val) return false;
}
return isValidBST(root.left, min, root.val) && isValidBST(root.right, root.val, max);
}
}