1. 题目
- 验证二叉搜索树
2. Java代码
boolean isValidBST(TreeNode root) {
//
return isValidBST(root, null, null);
}
// 辅助函数,参数:中,小,大
boolean isValidBST(TreeNode root, TreeNode min, TreeNode max) {
// base case
if (root == null) return true;
// 比较,若当前结点值比小的值还要小,说明不是BST
if (min != null && min.val >= root.val)
return false;
// 比较,若当前结点比大的值还要大,说明不是BST
if (max != null && max.val <= root.val)
return false;
// 递归判断左右子树
return isValidBST(root.left, min, root) && isValidBST(root.right, root, max);
}
}