题目
给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。
有效 二叉搜索树定义如下:
节点的左子树只包含 小于 当前节点的数。
节点的右子树只包含 大于 当前节点的数。
所有左子树和右子树自身必须也是二叉搜索树。
解题思路
BST的中序遍历是升序数组,根据中序遍历的值来判断即可。
代码
class Solution {
public long pre = Long.MIN_VALUE;
public boolean isValidBST(TreeNode root) {
if (root == null) return true;
boolean ans = true;
ans = ans && isValidBST(root.left);
if (root.val <= pre) return false;
else pre = root.val;
ans = ans && isValidBST(root.right);
return ans;
}
}