news 2026/3/27 6:19:57

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/3/24 11:26:16

27、Linux 系统操作与故障排除全攻略

Linux 系统操作与故障排除全攻略 软件卸载与依赖处理 有时我们会尝试卸载一些软件包,例如使用 rpm -e glibc 命令来卸载 glibc 包。不过要注意, glibc 是帮助部分程序运行的必需包,这里只是作为示例。当执行卸载命令后,如果看到错误提示说该包是满足依赖关系所必需…

作者头像 李华
网站建设 2026/3/25 9:50:09

Iceberg 在hadoop大数据数据湖领域这么火

Iceberg 在hadoop大数据数据湖领域这么火建议由CDH迁移到CMP 7.13 平台(类Cloudera CDP7.3,如华为鲲鹏 ARM 版)可以做到无缝切换平缓迁移Apache Iceberg 在 Hadoop 大数据和数据湖领域“爆火”,并非偶然,而是因为它精准…

作者头像 李华
网站建设 2026/3/24 8:28:20

全渠道协同的真正考验:集成技术如何支撑“双旦”零售高峰

前言:为什么“双旦”是检验零售集成能力的关键节点? 相较于“双十一”高度依赖电商平台的集中爆发,“双旦”(耶诞节与元旦)更像是一场全渠道综合能力检验的真正大考。在年终最后这一波销售高峰中,零售企业面…

作者头像 李华
网站建设 2026/3/21 5:16:19

B站数据分析终极指南:一键掌握UP主内容趋势

B站数据分析终极指南:一键掌握UP主内容趋势 【免费下载链接】biliscope Bilibili chrome extension to show uploaders stats 项目地址: https://gitcode.com/gh_mirrors/bi/biliscope 在当今内容爆炸的时代,如何在海量的B站视频中快速找到有价值…

作者头像 李华
网站建设 2026/3/23 2:49:08

【AI应用部署新范式】:Docker + Vercel AI SDK 构建高性能API服务

第一章:AI应用部署新范式概述随着人工智能技术的快速发展,AI应用的部署方式正在经历深刻变革。传统的部署模式往往依赖于静态模型与固定基础设施,难以应对动态负载和持续迭代的需求。如今,以容器化、服务网格和无服务器架构为代表…

作者头像 李华
网站建设 2026/3/25 5:43:48

小红书 文章采集器

只要有文章url就行,图片,视频,文字都能采集到,json个是返回结果存储 具体插件安装及使用方法参考:https://greasyfork.org/zh-CN/scripts/559126-%E5%B0%8F%E7%BA%A2%E4%B9%A6%E5%85%A8%E9%87%8F%E6%95%B0%E6%8D%AE%E…

作者头像 李华