对于二叉搜索树的每一个节点root,代码值检查了它的左右孩子节点是否符合左小右大的原则,而且root的整个左子树都要小于root.val ,整个右子树都要大于root.val 。
public boolean isValidBST(TreeNode root) {
return isValidBST(root, null, null);
}
private 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);
}