标签:大于 中序 一个 etc 节点 校验 依次 boolean lse
给定一个二叉树,判断其是否是一个有效的二叉搜索树。
一个二叉搜索树具有如下特征:
示例:
输入:
2
/ 1 3
输出: true
输入:
5
/ 1 4
/ 3 6
输出: false
解释: 输入为: [5,1,4,null,null,3,6]。
根节点的值为 5 ,但是其右子节点值为 4
思路:
实现:
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {boolean}
*/
var isValidBST = function(root) {
if(root == null){
return true;
}
let nums = [];
let isValid = true;
//中序遍历
const inOrder = (node) => {
if(node){
inOrder(node.left);
nums.push(node.val);
inOrder(node.right);
}
}
inOrder(root);
//校验是否有序
for (let i = 1; i < nums.length; i++) {
if (nums[i] <= nums[i - 1]) {
isValid = false;
}
}
return isValid;
}
标签:大于 中序 一个 etc 节点 校验 依次 boolean lse
原文地址:https://www.cnblogs.com/jianzhihao/p/9352877.html