/*
* function TreeNode(x) {
* this.val = x;
* this.left = null;
* this.right = null;
* }
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param root TreeNode类
* @return bool布尔型
*/
function isValidBST(root) {
// write code here
let cnt = [];
// 先中序遍历,得到二叉树节点值
function checkNode(node) {
if (node == null) {
return;
}
if (node.left) {
checkNode(node.left);
}
cnt.push(node.val);
if (node.right) {
checkNode(node.right);
}
}
checkNode(root);
let flag = true;
let len = cnt.length;
// 检查是否记录的数组是否是升序
if (len > 0) {
let minn = cnt[0];
for (let i = 1; i < len; i++) {
if (minn > cnt[i]) {
flag = false;
break;
} else {
minn = cnt[i];
}
}
}
return flag;
}
module.exports = {
isValidBST: isValidBST,
};