力扣题解 >>> 二叉树

验证二叉搜索树

  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);
};
相关推荐
To_OC25 分钟前
LC 49 字母异位词分组:想到哈希表很简单,选对 key 才是精髓
javascript·算法·leetcode
kyriewen3 小时前
用了半年 Claude Code 后,我尝试关掉它写了一周代码——结果比想象中严重
前端·javascript·ai编程
山河木马5 小时前
矩阵专题0-webGL中的矩阵
javascript·webgl·计算机图形学
Asize5 小时前
多模态生图:从 Vite 工程化到前端调用 Qwen Image
javascript·人工智能·后端
陳陈陳5 小时前
从Token到Embedding:一篇文章搞懂大模型的「文字数学变形记」
前端·javascript·ai编程
用户938515635075 小时前
从 O(n²) 到 O(nlogn):一文读懂快速排序的“快”与“妙”
javascript·算法
橘子星6 小时前
LLM 无状态架构实践:从原理到代码落地
前端·javascript·人工智能
To_OC6 小时前
手写快排次次翻车?别死背快排模板了,这才是面试官想听的底层逻辑
javascript·算法·排序算法
风止何安啊8 小时前
网课倍速痛点解决:一套前端代码实现自由控速播放器
前端·javascript·node.js
光影少年9 小时前
原生DOM操作在React 中的注意事项
前端·javascript·react.js