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

leetcode98-验证二叉搜索树

leetcode 98
在这里插入图片描述
这里要验证二叉搜索树的关键是知道二叉搜索树的特性:

  • 节点的左子树只包含小于当前节点的值
  • 节点的右子树只包含大于当前节点的值
  • 所有左子树和右子树自身必须也是二叉搜索树
    根据这些特性,可以知道,如果使用中序遍历:左中右,得到的是从小到大排序的,那说明是二叉搜索树

我们可以默认先把这个二叉树当成是二叉搜索树,所以初始化设置result = true
由于二叉搜索树中序遍历后的结果是递增的,我们初始化maxValue = -Infinity,用于存储上次的节点值,下一个节点值就一定是大于maxValue的,否则就不是二叉搜索树 - > 修改result = false
如果下一个值更大,那么更新maxValue

var isValidBST = function(root) {
   let result = true;
   let maxValue = -Infinity;
   const deep = (root) => {
       if(!root) return
       result && root.left && deep(root.left)
       if(maxValue >= root.val){
           result = false;
       }else{
       	maxValue = root.val;
       }
       result && root.right && deep(root.right)
   }
   deep(root)
   return result;
};

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

相关文章:

  • Vue3组合式函数(滚动监测 useScroll)
  • 深入理解 C# 反射 的使用
  • 【微信小程序(云开发模式)变通实现DeepSeek支持语音】
  • 关于 51 单片机生成延时函数
  • HarmonyOS第23天:应用性能优化,解锁流畅体验密码
  • 在springboot3.x中使用Ehcache3.x
  • Moonlight-16B-A3B: 变革性的高效大语言模型,凭借Muon优化器打破训练效率极限
  • Fortinet全新下一代防火墙NGFW
  • 若依excel工具类导出excel模板数据带下拉映射
  • 数字化工厂智能制造精益化管理智能工厂数据分析大数据解决方案精品PPT格式
  • 使用 `better-sqlite3` 与 `Express.js` 的最佳实践:是否需要关闭数据库连接?
  • Android手机中各类安全相关知识总结
  • 如何在WordPress中添加下载链接?
  • 【从零开始学习计算机科学】设计模式(二)工厂模式、抽象工厂模式、单例模式、建造者模型、原型模式
  • 基于ssm学科竞赛小程序的设计及实现(源码+lw+部署文档+讲解),源码可白嫖!
  • 数据结构:二叉树(一)·(重点)
  • dockercompose如何重启单个服务和所有服务
  • 【平台优化】大数据集群一个客户端参数引起的任务性能差的问题
  • 【RabbitMQ】RabbitMQ如何保证消息不丢失?
  • 分布式唯一ID生成算法——MongoDB ObjectId 算法