题目描述
leetcode地址
二叉搜索树是指:左子树的节点值严格小于根节点,右子树的节点值严格大于根节点。
现给出一个二叉树,校验其是否满足二叉搜索树的特性。
比如下图中,右节点4小于根节点5,不是二叉搜索树。
截屏2021-03-01 上午11.27.15.png
思路分析
分解问题为一个一个的子问题,一颗大的二叉树是搜索树的前提是,其左右子树也是二叉树,只要在判断子树过程中发现有不满足条件的,则整个二叉树不满足条件。
截屏2021-03-01 下午6.01.26.png
代码实现
/**
* @param {TreeNode} root
* @return {boolean}
*/
var isValidBST = function(root) {
if(root === null || (root.left === null && root.right === null)) return true
return recursive(root, -Infinity, Infinity)
function recursive(node, left, right) {
if(node === null) return true;
if(node.val <= left || node.val >= right) return false
return recursive(node.left, left, node.val) && recursive(node.right, node.val, right)
}
};
网友评论