98 验证二叉搜索树
二叉搜索树的中序遍历为单调递增。
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
private boolean flag = true;
private int cnt = 0;
private int minn = Integer.MIN_VALUE;
public void isBST(TreeNode root){
if (root == null || ! flag) return;
isBST(root.left);
if (root.val > minn || (root.val == minn && cnt == 0)){
// 此处避坑,防止最小值与JAVA int最小值相等
minn = root.val;
cnt ++;
}
else{
flag = false;
}
isBST(root.right);
}
public boolean isValidBST(TreeNode root) {
isBST(root);
return flag;
}
}