news 2026/5/8 10:19:07

【 每天学习一点算法 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/5/3 5:49:09

Docker MCP网关异常响应处理全解析(错误码深度剖析+实战修复)

第一章&#xff1a;Docker MCP网关异常响应处理概述在基于容器化架构的微服务系统中&#xff0c;Docker MCP&#xff08;Microservice Control Plane&#xff09;网关承担着请求路由、负载均衡与安全控制等核心职责。当网关出现异常响应时&#xff0c;可能表现为超时、5xx错误或…

作者头像 李华
网站建设 2026/5/7 21:56:44

如何在VSCode中正确配置量子硬件访问权限:90%开发者都踩过的坑

第一章&#xff1a;VSCode 量子硬件权限配置概述在现代量子计算开发环境中&#xff0c;VSCode 已成为主流集成开发环境之一。为了实现对本地或远程量子硬件的访问与控制&#xff0c;必须正确配置其权限体系。这不仅涉及操作系统层面的设备访问授权&#xff0c;还包括 VSCode 扩…

作者头像 李华
网站建设 2026/5/2 18:01:44

Windows系统透明美化大师:DWMBlurGlass全方位使用教程

Windows系统透明美化大师&#xff1a;DWMBlurGlass全方位使用教程 【免费下载链接】DWMBlurGlass Add custom effect to global system title bar, support win10 and win11. 项目地址: https://gitcode.com/gh_mirrors/dw/DWMBlurGlass 还在为Windows系统单调的界面设计…

作者头像 李华
网站建设 2026/5/1 11:14:43

钉钉防撤回工具完整使用指南:彻底解决消息消失烦恼

想要完全掌握钉钉防撤回工具的使用技巧吗&#xff1f;本指南将带你从零开始&#xff0c;快速掌握这款实用工具的完整使用方法&#xff0c;彻底告别消息被撤回的烦恼&#xff01; 【免费下载链接】DingTalkRevokeMsgPatcher 钉钉消息防撤回补丁PC版&#xff08;原名&#xff1a;…

作者头像 李华
网站建设 2026/5/6 1:27:55

电子签名终极解决方案:OpenSign免费开源平台完全指南

电子签名终极解决方案&#xff1a;OpenSign免费开源平台完全指南 【免费下载链接】OpenSign &#x1f525; &#x1f525; &#x1f525; The free & Open Source DocuSign alternative 项目地址: https://gitcode.com/gh_mirrors/op/OpenSign 在数字化转型浪潮中&a…

作者头像 李华