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

LeetCode | 110. 平衡二叉树

LeetCode | 110. 平衡二叉树

OJ链接

在这里插入图片描述

  • 首先计算出二叉树的高度
  • 然后计算当前节点的左右子树的高度,然后判断当前节点的左右子树高度差是否超过 1,最后递归地检查左右子树是否也是平衡的。
//计算二叉树的高度
int height(struct TreeNode* root)
{
    if(root == NULL)
        return NULL;
    int left = height(root->left);
    int right = height(root->right);
    return left > right ? left + 1 : right + 1;
}
//判断是否是平衡二叉树
bool isBalanced(struct TreeNode* root) {
    if(root == NULL)
        return true;
    
    //分别求左右子树的高度
    int left = height(root->left);
    int right = height(root->right);

    //判断当前节点是否平衡
    if(abs(left - right) > 1)
        return false;
    //递归检查左右子树是否平衡    
    return isBalanced(root->left)
        && isBalanced(root->right);
}

http://www.kler.cn/a/158009.html

相关文章:

  • LiveGBS流媒体平台GB/T28181功能-概览中负载信息直播、回放、播放、录像、H265、级联查看负载会话列表
  • C++作业5
  • Hive_Spark_left()函数
  • 数字营销竞争激烈,这是真的吗?
  • Java中的信号量(Semaphore)机制详解
  • PyQt6 QGroupBox分组框控件
  • 查看php进程占用内存
  • 阿里云新版公共实例从注册账号到创建设备生成参数教程
  • 第73讲:深入理解MySQL数据库InnoDB存储引擎:内存结构、磁盘结构与后台线程全面解析
  • 浪潮信息KeyarchOS——保卫数字未来的安全防御利器
  • Web漏洞分析-SQL注入XXE注入(中上)
  • 【每日易题】Leetcode上Hard难度的动态规划题目——地下城游戏的实现
  • 纹理烘焙:原理及实现
  • 2023-11-28-直播单细胞图表美化-seurat数据结构 featureplot dotplot vlnplot
  • #名词区别篇:事件流事件委托addEventListener白屏时间首屏时间
  • spring cloud gateway源码分析,一个请求进来的默认处理流程
  • 零基础入坑Python爬虫的全面学习指南
  • _____面试题_____(持续更新)
  • 11.10Redis基础
  • HTTP 和 HTTPS的区别