题目描述
分析
二叉搜索树的特性就是中序遍历是递增序。既然是判断是否是二叉搜索树,那我们可以使用中序递归遍历。只要之前的节点是二叉树搜索树,那么如果当前的节点大于上一个节点值那么就可以向下判断。
如果有出现当前的节点小于上一个节点值,就说明不是二叉搜索树,直接返回false;
代码
public class Solution {
int pre = Integer.MIN_VALUE;
public boolean isValidBST (TreeNode root) {
if (root == null) return true;
//先进入左子树
if (!isValidBST (root.left)) {
return false;
}
if (root.val < pre) {
return false;
}
//更新最值
pre = root.val;
return isValidBST (root.right);
}
}