二叉搜索树的验证算法Binary Search Tree

验证二叉搜索树的条件

  1. 二叉树(Binary Tree)
  2. 空树(Empty)
  3. root > left && root < right

算法

1
2
3
4
5
6
7
public boolean checkBST(TreeNode root, int min, int max) {
if (root == null)
return false;
if (root.val < min || root.val > max)
return false;
return checkBST(root.left, min, root.val) && checkBST(root.right, root.val, max);
}

时间复杂度 O(n)