当前位置: 首页 > news >正文

LC110 平衡二叉树

一.任务描述:

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

示例 1:

 

输入:root = [3,9,20,null,null,15,7]

输出:true

示例 2:

 

输入:root = [1,2,2,3,3,null,null,4,4]

输出:false

示例 3:

输入:root = []

输出:true

 

二.解题思路:

自底向上的递归

  1. 从叶子节点开始计算高度

  2. 如果子树不平衡,立即返回-1标记不平衡

  3. 否则返回实际高度供父节点使用

  4. 最终检查根节点是否返回-1

三.代码实现:

C

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
int checkHeight(struct TreeNode* root) {if (root == NULL) {return 0;}// 递归检查左子树高度int leftHeight = checkHeight(root->left);if (leftHeight == -1) {return -1; // 左子树不平衡,直接返回}// 递归检查右子树高度int rightHeight = checkHeight(root->right);if (rightHeight == -1) {return -1; // 右子树不平衡,直接返回}// 检查当前节点是否平衡if (abs(leftHeight - rightHeight) > 1) {return -1; // 当前节点不平衡}// 返回当前子树的高度return (leftHeight > rightHeight ? leftHeight : rightHeight) + 1;
}bool isBalanced(struct TreeNode* root) {// 如果checkHeight返回-1表示不平衡,否则平衡return checkHeight(root) != -1;
}

四.总结:

核心技巧:

  1. checkHeight函数

    • 计算子树高度同时检查平衡性

    • 返回-1表示子树不平衡

    • 返回正整数表示子树高度

  2. isBalanced函数

    • 调用辅助函数检查整棵树

    • 如果返回-1则不平衡,否则平衡

  3. 算法特点

    • 时间复杂度:O(n) - 每个节点访问一次

    • 空间复杂度:O(h) - 递归栈深度,h为树高

    • 自底向上检查,避免重复计算

 

http://www.dtcms.com/a/562085.html

相关文章:

  • Auto CAD二次开发——图案填充(函数封装)
  • 【Android】Lottie - 实现炫酷的Android导航栏动画
  • 企业网站服务器租用wordpress 云解析视频教程
  • 【C++】Dev-C++安装步骤(V5.11和V6.3)
  • 阿里云网站用什么做的html在线记账网站模板
  • 企业建网站程序如何使用好单库选品库做网站
  • 深圳开发网站的公司哪家好免费一键网站
  • 如何使用 Ollama 在本地设置和运行 GPT-OSS
  • 合肥网站建设方案托管工业产品设计图片
  • p2p金融网站建设wordpress 适配 手机
  • 各类数据库如何仅授权用户访问元数据
  • 一级做A网站wordpress友情链接分类显示
  • Linux系统管理与常用命令详解
  • 计算机操作系统:用户层的I/O软件
  • 数据中心主机虚拟化
  • TCP/IP是什么?OSI又是什么?
  • wordpress企业网站主题一个网站上面有名优
  • 网站建设 php jsp .net网站内页百度不收录
  • 企业网络营销信息源类别及传递渠道调查东莞网站建设优化
  • [论文阅读] AI+ | GenAI重塑智慧图书馆:华东师大实践AI虚拟馆员,解放馆员聚焦高价值任务
  • 电子商务网站建设各项费用预算是多少wordpress 插件 摘要
  • 网站文章百度不收录福田网站设计公司哪家好
  • Java 中的 String、StringBuilder、StringBuffer 区别
  • 线性代数 - 奇异值分解(SVD Singular Value Decomposition)
  • 考研408——操作系统
  • 建设网站有哪些参考文献移动网络服务电话
  • 国内vps做网站要备案吗国家企业信息信用系统
  • 【AI基础篇】梯度提升机
  • 机器学习实践项目(二)- 房价预测 - 训练模型
  • dedecms做电商网站南昌短视频代运营公司