力扣题解 >>> 二叉树

验证二叉搜索树

  1. 递归+判断数组是否升序
javascript 复制代码
var isValidBST = function(root) {
    // 搜索二叉树中序遍历之后的结果数组一定是升序
    if(!root){
        return true;
    }
    let result = [];
    var dg = function(node){
        if(node){
            dg(node.left);
            result.push(node.val);
            dg(node.right);
        }
    }
    dg(root);
    for(let i = 1; i < result.length; i++){
        if(result[i-1] >= result[i]){
            return false;
        }
    }
    return true;
};
  1. 递归
javascript 复制代码
var isValidBST = function(root) {
    if(!root){
        return true;
    }
    var dg = function(node,min,max){
        // 遍历到叶子节点
        if(!node){
            return true;
        }
        // 判断左子树上所有节点的值是否均小于它的根节点的值,右子树上所有节点的值是否均大于它的根节点的值
        if(node.val <= min || node.val >= max){
            return false;
        }
        return dg(node.left,min,node.val) && dg(node.right,node.val,max);
    }
    return dg(root,-Infinity, Infinity);
};
相关推荐
汪子熙2 小时前
浏览器环境中 window.eval(vOnInit); // csp-ignore-legacy-api 的技术解析与实践意义
前端·javascript
BUG收容所所长2 小时前
🤖 零基础构建本地AI对话机器人:Ollama+React实战指南
前端·javascript·llm
小高0072 小时前
🚀前端异步编程:Promise vs Async/Await,实战对比与应用
前端·javascript·面试
Spider_Man2 小时前
"压"你没商量:性能优化的隐藏彩蛋
javascript·性能优化·node.js
用户87612829073742 小时前
对于通用组件如何获取表单输入,区分表单类型的试验
前端·javascript
Bdygsl3 小时前
前端开发:JavaScript(6)—— 对象
开发语言·javascript·ecmascript
Mintopia4 小时前
AIGC Claude(Anthropic)接入与应用实战:从字节流到智能交互的奇妙旅程
前端·javascript·aigc
Mintopia4 小时前
Next.js 样式魔法指南:CSS Modules 与 Tailwind CSS 实战
前端·javascript·next.js
kfepiza4 小时前
JavaScript的 async , await 笔记250808
javascript
国家不保护废物4 小时前
跨域问题:从同源策略到JSONP、CORS实战,前端必知必会
前端·javascript·面试