验证二叉搜索树

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。
有效 二叉搜索树定义如下:
节点的左子树只包含 小于 当前节点的数。
节点的右子树只包含 大于 当前节点的数。
所有左子树和右子树自身必须也是二叉搜索树。

  • 输入:root = [2,1,3]

  • 输出:true

  • 输入:root = [5,1,4,null,null,3,6]

  • 输出:false

  • 解释:根节点的值是 5 ,但是右子节点的值是 4 。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var isValidBST = function(root) {
if(root == null) {return true};
let arr = []
let isInit = false
let temp = Number.MIN_VALUE;
while(root!=null || arr.length !=0){
while(root!=null){
arr.push(root);
root = root.left;
}
root = arr.pop();
if(root.val <= temp && isInit){return false}
isInit = true
temp = root.val;
root = root.right
}
return true
};