验证二叉搜索树
给你一个二叉树的根节点 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 };
|