news 2026/8/1 23:25:53

【 每天学习一点算法 2025/12/17】验证二叉搜索树

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【 每天学习一点算法 2025/12/17】验证二叉搜索树

每天学习一点算法 2025/12/17

验证二叉搜索树

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

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

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

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

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

  1. 根据题目描述可以知道二叉搜索树,使用中序遍历的结果数组一定是升序,也就是每一次遍历的节点值都比之前的大,我们只需要在遍历过程比较一下当前节点值是否符合要求即可。

    functionisValidBST(root:TreeNode|null):boolean{constresult:number[]=[]// 用于存储遍历值// 为了避免result全局污染添加一个辅助函数functionvalidate(node:TreeNode|null):boolean{if(node===null)returntrue;// 初始默认为有效搜索二叉树// 提前中断已经无效的情况if(!validate(node.left)){returnfalse}// 判断当前节点是否符合二叉搜索树特征if(result.filter(item=>item>=node.val).length>0)returnfalseresult.push(node.val)// 提前中断已经无效的情况if(!validate(node.right)){returnfalse}returntrue}// 调用辅助函数returnvalidate(root);};
  2. 之前的二叉树相关的题我们也提到了递归的每次一层的root其实就是当前子树的根节点,我们只需要在每一层的遍历中判断当前节点的值和子节点的大小关系即可知道这是否是有效的二叉搜索树。

    functionisValidBST(root:TreeNode|null):boolean{// 辅助函数,增加上下界参数functionvalidate(node:TreeNode|null,lower:number,upper:number):boolean{if(node===null)returntrue;// 终止时无超出上下界的结果为有效// 检查当前节点值是否超出上下界if(node.val<=lower||node.val>=upper){returnfalse;}// 递归检查左子树和右子树returnvalidate(node.left,lower,node.val)&&validate(node.right,node.val,upper);}// 调用辅助函数,初始上下界为负无穷到正无穷returnvalidate(root,-Infinity,Infinity);};

题目来源:力扣(LeetCode)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/1 10:58:49

vue基于Spring Boot框架旅游攻略网站管理系统设 门票 酒店预订_mr0sjrve

目录已开发项目效果实现截图开发技术介绍系统开发工具&#xff1a;核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&…

作者头像 李华
网站建设 2026/8/2 4:31:25

爱创猫靠谱吗?省钱实测报告:无套路功能真的香

一个深度用户的真实体验与价值分析在信息爆炸的电商时代&#xff0c;你是否也经历过这样的困扰&#xff1a;同一件商品&#xff0c;在不同平台的价格差异让人眼花缭乱&#xff1b;复杂的满减、优惠券、预付定金规则&#xff0c;算到头大也未必拿到最优价&#xff1b;刚买完就降…

作者头像 李华
网站建设 2026/8/2 0:21:55

炸裂!谷歌AI Agent白皮书中文版横空出世,在AI教材直接“封神”

家人们&#xff0c;最近AI Agent市场那叫一个火得一塌糊涂&#xff01;为了让大家全方位吃透AI Agent&#xff0c;还能积极投身到生态建设里&#xff0c;好多公司都纷纷甩出了官方智能体解读和白皮书。继Anthropic之后&#xff0c;谷歌这几天也按捺不住&#xff0c;发布了自家的…

作者头像 李华
网站建设 2026/8/1 16:40:30

vue基于Spring Boot框架的针对老年人的景区订票系统的设计与实现_hl6i4b7s

目录已开发项目效果实现截图开发技术介绍系统开发工具&#xff1a;核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&…

作者头像 李华
网站建设 2026/8/2 3:46:25

揭秘Cirq自动补全机制:7条你必须遵守的语法铁律

第一章&#xff1a;Cirq代码补全机制的核心原理Cirq 是由 Google 开发的开源量子计算框架&#xff0c;其代码补全机制依赖于 Python 的类型注解与 IDE 的静态分析能力相结合&#xff0c;为开发者提供高效、准确的编程辅助。该机制不仅提升开发效率&#xff0c;还减少因语法或接…

作者头像 李华