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

力扣-98.验证二叉搜索树

题目描述

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

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

  • 节点的左子树只包含 小于 当前节点的数。
  • 节点的右子树只包含 大于 当前节点的数。
  • 所有左子树和右子树自身必须也是二叉搜索树。
class Solution {
public:long long min = LONG_LONG_MIN;//测试数据中有INT_MINbool isValidBST(TreeNode *root) {if (!root)return true;bool left = isValidBST(root->left);if (root->val > min) {min = root->val;} else {return false;}bool right = isValidBST(root->right);return left && right;}
};

小结:这道题的坑就在于左子树是二叉搜索树+右子树是二叉搜索树+左子树根结点<根结点<右子树根结点,此时整棵树依然不能确定是否为二叉搜索树。我们来看这样一个例子:[5,4,6,null,null,3,7] 这里3 < 5就不满足条件。解决方法是利用中序遍历+一个变量记录遍历到的值,如果不满足直接返回false,因为二叉搜索树的中序遍历是递增的序列。

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

相关文章:

  • 5.17本日总结
  • 大模型学习:Deepseek+dify零成本部署本地运行实用教程(超级详细!建议收藏)
  • VSCode launch.json 配置参数详解
  • pytest多种断言类型封装为自动化断言规则库
  • Oracle数据库如何进行冷备份和恢复
  • LeetCode Hot100 (2、3、4、5、6、8、9、12)
  • FastMCP:为大语言模型构建强大的上下文和工具服务
  • 数据结构(3)线性表-链表-单链表
  • Java Solon v3.3.0 发布(国产优秀应用开发基座)
  • 23种设计模式概述详述(C#代码示例)
  • 数字化工厂升级引擎:Modbus TCP转Profinet网关助力打造柔性生产系统
  • FPGA生成随机数的方法
  • 【Linux C/C++开发】轻量级关系型数据库SQLite开发(包含性能测试代码)
  • 2025认证杯第二阶段数学建模B题:谣言在社交网络上的传播思路+模型+代码
  • 记录算法笔记(2025.5.17)验证二叉搜索树
  • flutter编译时 设置jdk版本
  • ctfshow——web入门254~258
  • 【数据处理】xarray 数据处理教程:从入门到精通
  • qt5.14.2 opencv调用摄像头显示在label
  • 科技的成就(六十八)
  • 芯片生态链深度解析(三):芯片设计篇——数字文明的造物主战争
  • Rocky Linux 9.5 基于kubeadm部署k8s
  • --openssl-legacy-provider is not allowed in NODE_OPTIONS 报错的处理方式
  • uart16550详细说明
  • deepin v23.1 音量自动静音问题解决
  • 抢跑「中央计算+区域控制」市场,芯驰科技高端智控MCU“芯”升级
  • 《算法导论(第4版)》阅读笔记:p82-p82
  • day015-进程管理
  • traceroute命令: -g与-i 参数
  • POWER BI添加自定义字体