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

力扣 hot100 Day44

98. 验证二叉搜索树

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。

有效 二叉搜索树定义如下:

        节点的左子树只包含 小于 当前节点的数。

        节点的右子树只包含 大于 当前节点的数。

        所有左子树和右子树自身必须也是二叉搜索树

//自己写的
class Solution {
public:void inorderHelper(TreeNode* root, vector<int>& result) {if (root == nullptr) return;inorderHelper(root->left, result);result.push_back(root->val);inorderHelper(root->right, result);}bool isValidBST(TreeNode* root) {vector<int> res;inorderHelper(root, res);for (int i = 1; i < res.size(); i++) {if (res[i] <= res[i-1]) {return false;}}return true;}
};

最直接的想法,按中序遍历排序,如果严格升序,就符合要求,能顺利实现

//抄的
class Solution {
public:bool isValidBST(TreeNode* root) {return helper(root, LONG_MIN, LONG_MAX);}bool helper(TreeNode* node, long min_val, long max_val) {if (!node) return true;if (node->val <= min_val || node->val >= max_val) {return false;}return helper(node->left, min_val, node->val) && helper(node->right, node->val, max_val);}
};

递归做法,需要保证整个左节点树都小于根节点,右节点大于根节点,所以需要传递两个极值作为范围。

http://www.lryc.cn/news/588561.html

相关文章:

  • java基础(day07)
  • 板凳-------Mysql cookbook学习 (十一--------10)
  • 06【C++ 初阶】类和对象(上篇) --- 初步理解/使用类
  • ThreadLocal内部结构深度解析
  • 《大数据技术原理与应用》实验报告三 熟悉HBase常用操作
  • 每天一个前端小知识 Day 31 - 前端国际化(i18n)与本地化(l10n)实战方案
  • html js express 连接数据库mysql
  • Java:继承和多态(必会知识点整理)
  • 为什么资深C++开发者大部分选vector?揭秘背后的硬核性能真相!
  • 9.服务容错:构建高可用微服务的核心防御
  • #Paper Reading# Apple Intelligence Foundation Language Models
  • 微服务初步入门
  • 量子计算新突破!阿里“太章3.0”实现512量子比特模拟(2025中国量子算力巅峰)
  • 【算法训练营Day12】二叉树part2
  • 《大数据技术原理与应用》实验报告二 熟悉常用的HDFS操作
  • 【小白量化智能体】应用5:编写通达信股票交易指标及生成QMT自动交易Python策略程序
  • UDP协议的端口161怎么检测连通性
  • 【PY32】如何使用 J-Link 和 MDK 开发调试 PY32 MCU
  • 【STM32】什么在使能寄存器或外设之前必须先打开时钟?
  • java基础-1 : 运算符
  • 使用dify生成测试用例
  • 13.计算 Python 字符串的字节大小
  • HTML 文本格式化标签
  • 工业新引擎:预测性维护在工业场景中的实战应用(流程制造业为例)
  • 具身智能零碎知识点(五):VAE中对使用KL散度的理解
  • JJ20 Final Lap演唱会纪念票根生成工具
  • HashMap的长度为什么要是2的n次幂以及HashMap的继承关系(元码解析)
  • C语言:20250714笔记
  • 文本预处理(四)
  • AI驱动编程范式革命:传统开发与智能开发的全维度对比分析