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

LeetCode HOT100 - 验证二叉搜索树

依然递归

子节点传上来是否合法,如果子树不合法那这棵树一定也不合法

然后我们进行二叉搜索树的性质判定

左子树为例,要判断都小于根节点,那么就只要把左子树的最大值拿出来比较就可以

右子树也是一样的

因此我们回传的时候传递是否合法,还有当前最大值和最小值

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/using i64 = long long;
class Solution {
public:bool isValidBST(TreeNode* root) {auto dfs = [&](this auto&& self, TreeNode* x) -> array<i64, 3> {if (!x) {return {1, LLONG_MAX, LLONG_MIN};}auto l = self(x->left);auto r = self(x->right);if (!l[0] || !r[0]) {return {0, 0, 0};}if (l[2] >= x->val || r[1] <= x->val) {return {0, 0, 0};}array<i64, 3> res = {1, min<i64>({l[1], r[1], x->val}), max<i64>({l[2], r[2], x->val})};return res;};return dfs(root)[0];}
};

这里是自底向上的写法

实际上对于这题自顶向下也是可以的

也就是传递有效区间

// 当前节点超出上下界,直接剪枝
if (x->val <= lower || x->val >= upper) return false;
// 左子树的上限更新为当前节点的值,右子树的下限更新为当前节点的值
return self(x->left, lower, x->val) && self(x->right, x->val, upper);
http://www.jsqmd.com/news/772136/

相关文章:

  • Django AI助手:集成大模型提升开发效率的实践指南
  • 3步打造你的专属H5编辑器:零代码创作专业移动页面
  • 证件照一键生成哪个好用?实测五款免费工具榜单揭晓
  • 7+ Taskbar Tweaker深度技术解析:揭秘Windows任务栏定制3大技术突破
  • Qwen3.5-27B多模态落地:政府公告图片→政策要点→市民问答生成
  • 高级Android开发中的蓝牙、WiFi与NFC技术详解
  • 推荐算法离线评估与线上效果的差距分析
  • 餐饮代运营公司盘点:成都一棵大树如何助力新商家开店 - 行业观察日记
  • 观测 Taotoken 在多模型调用下的延迟与用量数据实践分享
  • 手把手教你用ChanlunX:让通达信自动识别缠论结构
  • 降AI率工具退款承诺差异盘点:哪款工具退检测费风险最低? - 我要发一区
  • 终极指南:3分钟解决Windows苹果设备驱动问题
  • 2026年软文推广多少钱一篇?最便宜性价比最高的平台居然是它! - 代码非世界
  • phy_simulators之nr_pbchsim之PBCH解码
  • 5步掌握GRETNA脑网络分析的终极技巧
  • 实时手机检测-通用模型实战案例:Gradio前端快速调用指南
  • 你的社交数据,凭什么归平台所有?用 Cloudflare 搭建去中心化社交应用
  • 3DS FBI Link:Mac上无线传输CIA游戏文件的终极指南
  • 3个隐藏技巧解锁KeymouseGo:让电脑替你打工的免费神器
  • 985/211高校AI率红线政策汇总:哪个档位用哪款工具最匹配? - 我要发一区
  • 降AI率工具的引擎技术分代盘点:从基础替换到双引擎并行的进化! - 我要发一区
  • 接入taotoken后如何利用其稳定性保障关键业务对话不中断
  • ASMR下载神器:构建智能ASMR资源管理系统的完整指南
  • 构建AI Agent排行榜:从数据聚合到动态分享的工程实践
  • Auto Cursor Activator:自动化测试与GUI操作的核心原理与实战应用
  • 为什么92%的知识管理项目失败?AISMM模型给出唯一可验证的4层校准机制
  • 生产环境踩坑记:如何优雅且安全地清理 Flink 过期 Checkpoint 目录?
  • 企业发软文找平台能做权威发稿吗?超全软文发布平台攻略+新闻稿发布避坑指南 - 代码非世界
  • 020旋转图像
  • 终极Java RPG游戏资源解密工具:5分钟掌握免费跨平台解密技巧