news 2026/6/10 16:42:49

LeetCode 分类刷题:110. 平衡二叉树

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 分类刷题:110. 平衡二叉树

题目

给定一个二叉树,判断它是否是 平衡二叉树

解析

// 怎么递归?

// 左右子树的高度相差不超过1

// 递归计算左、右子树的高度,如果高度相差超过1,返回-1;否则正常返回树的高度

// 递归终止条件:节点为空 或 已经检测出某棵子树不平衡

答疑
问:代码中的 −1 是怎么产生的?怎么返回的?

答:在某次递归中,发现左右子树高度绝对差大于 1,我们会返回 −1这个 −1 会一路向上不断返回,直到根节点。

作者:灵茶山艾府
链接:https://leetcode.cn/problems/balanced-binary-tree/solutions/2015068/ru-he-ling-huo-yun-yong-di-gui-lai-kan-s-c3wj/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

答案

这里一开始没写对,因为leftH 和 rightH没有声明类型!!!不止犯一次的错误了!!!

为什么必须加let / const

  • 在 JavaScript 中,未声明的变量会成为全局变量(即使在函数内部)。
  • 递归时,leftHrightH会被错误地覆盖(例如:第一次递归的leftH会污染后续递归的leftH),导致高度计算错误。
/** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right) * } */ /** * @param {TreeNode} root * @return {boolean} */ var isBalanced = function(root) { function f(node) { if(node === null) return 0; const leftH = f(node.left); if(leftH === -1) return -1; const rightH = f(node.right); if(rightH === -1 || Math.abs(leftH - rightH) > 1) return -1; return Math.max(leftH, rightH) + 1; } return f(root) !== -1; };

复杂度分析

时间复杂度:O(n),其中 n 为二叉树的节点个数。

空间复杂度:O(n)。最坏情况下,二叉树退化成一条链,递归需要 O(n) 的栈空间。

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

为什么你的VSCode无法访问量子硬件?深度剖析权限模型与修复方案

第一章:VSCode 量子硬件的权限配置在开发与量子计算硬件交互的应用程序时,本地开发环境的安全性与访问控制至关重要。VSCode 作为主流的集成开发环境,需通过精确的权限配置确保对量子设备 API 的安全调用。合理的权限设置不仅能防止未授权访问…

作者头像 李华
网站建设 2026/6/10 10:50:23

网安人才缺口480万!3个相关专业特点大不同,一文分清

网安人才缺口 480 万!3 个相关专业特点大不同,一文分清 9月16日,工业和信息化部教育与考试中心等部门联合发布《AI 时代网络安全产业人才发展报告(2025)》。报告指出,2025年全球网络安全人才缺口已升至480…

作者头像 李华
网站建设 2026/6/10 2:49:09

Grafana中文版终极指南:5分钟快速搭建监控仪表盘

Grafana中文版终极指南:5分钟快速搭建监控仪表盘 【免费下载链接】grafana-chinese grafana中文版本 项目地址: https://gitcode.com/gh_mirrors/gr/grafana-chinese Grafana中文版是一款专为中国用户量身定制的监控仪表盘汉化项目,基于官方Grafa…

作者头像 李华
网站建设 2026/6/10 10:49:27

FanControl深度解析:构建智能温控系统的关键技术实践

FanControl深度解析:构建智能温控系统的关键技术实践 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/…

作者头像 李华
网站建设 2026/6/10 1:44:10

【量子计算开发新纪元】:VSCode模拟器调试的7个关键优势

第一章:量子计算开发新纪元的开启量子计算正从理论探索迈向工程实现的关键阶段,全球科技巨头与初创企业纷纷投入资源,推动软硬件协同创新。开发者不再局限于模拟环境,而是可以直接访问真实量子处理器,通过云平台编写、…

作者头像 李华
网站建设 2026/6/10 12:35:01

程序员面试必备的Java八股文,适合所有的Java求职者!

说明 本文分享Java后端真实高频面试题,有详细答案,保你稳过面试。题目包括:Java基础、多线程、JVM、数据库、Redis、Shiro、Spring、SpringBoot、MyBatis、MQ、ELK、SpringCloud、设计模式等。 包含从简单到困难、从高频到低频的题目&#x…

作者头像 李华