98. 验证二叉搜索树

题目描述

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。

有效 二叉搜索树定义如下:

  • 节点的左子树只包含 小于 当前节点的数。
  • 节点的右子树只包含 大于 当前节点的数。
  • 所有左子树和右子树自身必须也是二叉搜索树。

输入输出

1
2
3
4
5
6
      2
/ \
1 3

输入:root = [2,1,3]
输出:true

基本思路

二叉搜索树的特点:中序遍历是一个递增序列 按照此特点写递归代码即可

设置Long是真的狗贼嗷(白眼

java实现

1
2
3
4
5
6
7
8
9
10
class Solution {
long pre = Long.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);
}
}