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

算法-二叉树篇09-平衡二叉树

平衡二叉树

力扣题目链接

题目描述

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

解题思路

把求二叉树最大深度的代码修改一下即可,在递归的时候判断两个子树的高度相差是否大于1,如果大于1就直接返回-1,说明该子树不平衡,如果两个子树中出现-1,也是直接返回,否则返回最大子树高度加1。

题解

class Solution {
public:
    bool isBalanced(TreeNode* root) {
        return func(root) == -1? false : true;
    }

    int func(TreeNode* root){
        if(root == NULL){
            return 0;
        }
        int n1 = func(root->left);
        int n2 = func(root->right);
        if(n1 == -1 || n2 == -1){
            return -1;
        }
        return abs(n1 - n2) > 1 ? -1 : 1 + max(n1, n2);
    }
};

相关文章:

  • 【Python爬虫(86)】元宇宙浪潮下,Python爬虫能否乘风破浪?
  • 【leetcode hot 100 11】移动零
  • 道可云人工智能每日资讯|深圳将设立人工智能和机器人产业基金
  • VMware各个软件的作用
  • javascript this 关键字
  • 联想 SR590 服务器 530-8i RAID 控制器更换损坏的硬盘
  • 动态内容加载的解决方案:Selenium与Playwright对比故障排查实录
  • 【面试】Java 之 String 系列 -- String 为什么不可变?
  • Linux Kernel Connection Tracking Table
  • ES的简单讲解
  • 【量化策略】动量追踪策略
  • Tkinter 标准对话框
  • 【PromptCoder】使用 package.json 生成 cursorrules
  • AWS S3 如何设置公开访问权限?
  • Git系列详细介绍和操作
  • Flutter系列教程之(5)——常用控件Widget的使用示例
  • 深入理解 Spring 中的 `ThreadPoolTaskExecutor` 与 `ThreadPoolExecutor`
  • CC攻击防御策略全解析:技术实现与代码示例
  • 【C/C++】理解C++内存与Linux虚拟地址空间的关系---带你通透C++中所有数据
  • 【堆】堆的基本概念及操作,堆与优先队列
  • 具有品牌的做网站/公司网站建设服务
  • mui做网站/自己建网站要花多少钱
  • 怎么做类似淘宝一样的网站/网站宣传推广方案
  • 有没有做武棍的网站/郑州网站制作公司哪家好
  • 网站算信息化建设/企业网站搜索优化网络推广
  • 网站建设销售销售流程/百度关键词统计