当前位置: 首页 > article >正文

二叉树 - 验证二叉搜索树

98. 验证二叉搜索树

在这里插入图片描述
在这里插入图片描述

方法一:辅助数组

/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {boolean}
 */
var isValidBST = function (root) {
    let arr = [];
    const buildArr = (root) => {
        if (root) {
            buildArr(root.left);
            arr.push(root.val);
            buildArr(root.right);
        }
    }
    buildArr(root);
    for (let i = 1; i < arr.length; ++i) {
        if (arr[i] <= arr[i - 1])
            return false;
    }
    return true;
};

方法二:递归

/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {boolean}
 */
 
var isValidBST = function (root) {
    let pre = null;
    const inOrder = (root) => {
        if (root === null) {
            return true;
        }
        let left = inOrder(root.left);

        if (pre !== null && pre.val >= root.val) {
            return false;
        }
        pre = root;
        let right = inOrder(root.right);
        return left && right;

    }
    return inOrder(root);
};

http://www.kler.cn/a/298316.html

相关文章:

  • 知识蒸馏-KD
  • js 有关小数的方法
  • 低代码开发技术在农村现代化中的应用探索
  • FPGA硬件设计语言:VHDL和System Verilog
  • 叠螺污泥脱水机的成本包括哪些方面
  • 如何在红米手机中恢复已删除的照片?(6 种方式可供选择)
  • .NET 自定义过滤器 - ActionFilterAttribute
  • Go入门语法
  • Git的基本概念和使用方式
  • 2024临床常用的肺栓塞评估量表汇总!
  • 基于Ubuntu+PostgreSQL+Zip搭建SonarQube环境
  • 【计算机网络】UDP TCP介绍
  • MySQL record 04 part
  • 如何让Google收录我的网站?
  • Vue3+TypeScript频谱跳动算法(附vue2+JavaScript)
  • FreeRTOS学习笔记(七)信号量
  • SAP ABAP 删除请求
  • 文本字符分割算法尝试
  • 哈希表的底层实现(2)---C++版
  • 时间序列处理方法