news 2026/4/25 21:57:22

【Hot 100 刷题计划】 LeetCode 98. 验证二叉搜索树 | C++ 指针边界法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Hot 100 刷题计划】 LeetCode 98. 验证二叉搜索树 | C++ 指针边界法

LeetCode 98. 验证二叉搜索树

📌 题目描述

题目级别:中等

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

  • 节点的左子树只包含严格小于当前节点的数。
  • 节点的右子树只包含严格大于当前节点的数。
  • 所有左子树和右子树自身必须也是二叉搜索树。

💡 破题思路:区间约束法 (自顶向下)

验证 BST 的最大陷阱是:不能只判断当前节点和它的左右孩子
比如[5,4,6,null,null,3,7],节点6的左孩子是3,虽然3 < 6局部成立,但3身处根节点5的右子树中,它必须大于5

因此,我们需要自顶向下地传递一个合法区间(min, max)

  1. 根节点的区间是(-∞, +∞)
  2. 往左子树走时,当前节点的值就成了左子树的上限
  3. 往右子树走时,当前节点的值就成了右子树的下限

高光技巧(指针代替数值):
很多解法用LONG_MIN来初始化极小值,但如果节点值本身就是long long类型的下界呢?
最优的写法是使用TreeNode*指针来表示边界。如果指针为空,表示没有边界限制;如果指针有值,直接解引用比较。优雅且绝对不会溢出。


💻 C++ 代码实现 (指针边界版)

classSolution{public:boolisValidBST(TreeNode*root){// 初始状态:上下界均无限制 (nullptr)returndfs(root,nullptr,nullptr);}booldfs(TreeNode*root,TreeNode*minN,TreeNode*maxN){// 走到空节点,说明没有违反规则if(!root)returntrue;// 如果下界存在,且当前值没有严格大于下界,判负// 如果上界存在,且当前值没有严格小于上界,判负if((minN&&root->val<=minN->val)||(maxN&&root->val>=maxN->val))returnfalse;// 向左子树递归:下界不变,上界更新为当前节点// 向右子树递归:下界更新为当前节点,上界不变returndfs(root->left,minN,root)&&dfs(root->right,root,maxN);}};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 21:57:19

如何做性能压测

在做性能压测之前&#xff0c;首先我们需要明白我们压测的目标是什么&#xff1f;是性能摸底&#xff1f; 还是测试是否满足设计指标&#xff0c;你可能会有疑问&#xff0c;这两个有什么不同吗&#xff1f; 性能摸底&#xff1a;测试机器最大处理能力&#xff0c;比如cpu已经…

作者头像 李华
网站建设 2026/4/25 21:52:27

嵌入式AI开发新范式(ARM Cortex-M7 + 量化LoRA微调实录)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;嵌入式AI开发新范式导论 传统嵌入式AI开发长期受限于资源约束、工具链割裂与部署闭环缺失&#xff0c;而新一代范式正以“模型-硬件-运行时”协同设计为核心&#xff0c;推动AI能力从云端下沉至MCU级…

作者头像 李华
网站建设 2026/4/25 21:51:05

机器学习重采样方法:原理、实现与工程实践

1. 理解重采样方法的核心价值在机器学习实践中&#xff0c;我们经常面临一个根本性矛盾&#xff1a;模型需要在训练数据上学习规律&#xff0c;但最终要在未见过的数据上表现良好。这就引出了机器学习中最关键的挑战之一——如何准确评估模型在真实场景中的表现&#xff1f;重采…

作者头像 李华
网站建设 2026/4/25 21:37:53

5分钟掌握B站视频下载:BilibiliDown终极免费工具使用指南

5分钟掌握B站视频下载&#xff1a;BilibiliDown终极免费工具使用指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirror…

作者头像 李华
网站建设 2026/4/25 21:36:51

ChatGPT高效摘要生成:技术与实践指南

1. 项目概述"Mastering Summarization with ChatGPT"这个标题直指当下最实用的AI应用场景之一——如何利用ChatGPT这类大语言模型进行高效的内容摘要生成。作为一名长期关注AI技术落地的从业者&#xff0c;我发现文本摘要能力正在成为职场人士和学生群体的刚需工具。…

作者头像 李华