力扣题解 >>> 二叉树

验证二叉搜索树

  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);
};
相关推荐
Bacon11 分钟前
CDP、Puppeteer 与无头浏览器:它们到底什么关系?
前端·javascript·node.js
kyriewen11 分钟前
你的网站被“下毒”了?XSS和CSRF:前端安全的两大“毒瘤”
前端·javascript·安全
Hilaku16 分钟前
别再用 JSON.parse 深拷贝了,聊聊 StructuredClone
前端·javascript·vue.js
暗不需求17 分钟前
手写 instanceof:从原型链聊聊 JS 的实例判断
前端·javascript
小李子呢021129 分钟前
前端八股JS---ES6新增内容
开发语言·javascript·ecmascript
东北甜妹1 小时前
Redis Cluster 部署
前端·javascript·bootstrap
小李子呢02111 小时前
前端八股---axios封装
java·前端·javascript
im_AMBER1 小时前
Leetcode 156 旋转图像 | 矩阵置零
javascript·数据结构·算法·leetcode
Highcharts.js1 小时前
在 Next.js App Router 中使用 Highcharts Stock(完整实战指南 )
开发语言·javascript·ecmascript
万邦科技Lafite1 小时前
通过淘宝关键词API接口批量获取商品信息指南
java·前端·javascript