检查平衡性

news2024/11/20 18:39:45

题目链接

检查平衡性

题目描述

注意点

  • 平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1

解答思路

  • 递归寻找每个节点作为根节点时是否是平衡树,对于任意一个节点,判断其是否是平衡树需要分别判断其左子树和右子树是否是平衡树,除此之外还要根据其左右子树的高度判断该节点是否是平衡树,满足三个条件才说明该树是平衡树
  • 解答中有两个递归,第一个递归是递归判断每棵子树是否是平衡树,第二个递归是递归计算每棵树的高度

代码

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public boolean isBalanced(TreeNode root) {
        if (root == null) {
            return true;
        }
        return isBalanced(root.left) && isBalanced(root.right) && Math.abs(countDepth(root.left) - countDepth(root.right)) <= 1;
    }

    public int countDepth(TreeNode root) {
        if (root == null) {
            return 0;
        }
        return Math.max(countDepth(root.left), countDepth(root.right)) + 1;
    }
}

关键点

  • 递归的思想

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1811162.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Echarts系列】平滑折线面积图

【Echarts系列】平滑折线面积图 序示例数据格式代码 序 为了节省后续开发学习成本&#xff0c;这个系列将记录我工作所用到的一些echarts图表。 示例 平滑折线面积图如图所示&#xff1a; 数据格式 data [{name: 2020年,value: 150},{name: 2021年,value: 168},{name: 2…

edge的GPU占很大内存处理

到设置中,把对视频的这2个增强关掉&#xff0c;重启浏览器之后就正常多了

自动检测曲别针数量:图像处理技术的应用

引言 在这篇博客中&#xff0c;我们将探讨如何使用计算机视觉技术自动检测图像中曲别针的数量。 如图&#xff1a; [1]使用灰度转换 由于彩色信息对于曲别针计数并不重要&#xff0c;我们将图像转换为灰度图&#xff0c;这样可以减少处理数据的复杂度&#xff0c;加速后续的…

史上最全,呕心沥血总结oracle推进SCN方法(六)

作者介绍&#xff1a;老苏&#xff0c;10余年DBA工作运维经验&#xff0c;擅长Oracle、MySQL、PG数据库运维&#xff08;如安装迁移&#xff0c;性能优化、故障应急处理等&#xff09; 公众号&#xff1a;老苏畅谈运维 欢迎关注本人公众号&#xff0c;更多精彩与您分享。前面介…

pycharm爬取BOSS直聘岗位信息

编译器:Pycharm 效果展示如图 简单原理描述:模拟人工动作爬取页面信息,运行脚本后代码自动打开浏览器获取相关信息,模拟人工进行页面跳转并自动抓取页面信息记录到表格中。 深入原理描述:页面翻转的时候会调用接口,接口中含有数据信息,定义数组存储需要的信息 需要引入…

419. 甲板上的战舰 Medium

给你一个大小为 m x n 的矩阵 board 表示甲板&#xff0c;其中&#xff0c;每个单元格可以是一艘战舰 X 或者是一个空位 . &#xff0c;返回在甲板 board 上放置的 战舰 的数量。 战舰 只能水平或者垂直放置在 board 上。换句话说&#xff0c;战舰只能按 1 x k&#xff08;1 行…

猫头虎分享:2024应届生择业在大模型和智能机器人之间该如何选择?

猫头虎分享&#xff1a;2024应届生择业在大模型和智能机器人之间该如何选择&#xff1f; 博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的…

前端三剑客之JavaScript基础入门

目录 ▐ 快速认识JavaScript ▐ 基本语法 &#x1f511;JS脚本写在哪? &#x1f511;注释 &#x1f511;变量如何声明? &#x1f511;数据类型 &#x1f511;运算符 &#x1f511;流程控制 ▐ 函数 ▐ 事件 ▐ 计时 ▐ HTML_DOM对象 * 建议学习完HTML和CSS后再…

C++:SLT容器-->queue

C:SLT容器-->queue 1. queue容器2. queue 常用接口 1. queue容器 先进先出队列允许从一端插入元素&#xff0c;从另一端删除元素队列中只有队头和队尾可以被外界使用&#xff0c;因此队列不允许有遍历行为队列中插入数据称为入队(push)&#xff0c;删除数据称为出队(pop) …

苹果AI来了,ios18史诗级发布

今天凌晨1点&#xff0c;苹果举行了WWDC开发者大会&#xff0c;正式发布了 全新iOS 18、iPadOS 18、watchOS 11、tvOS 18、macOS 等以及Apple Intelligence的个人化智能系统 苏音给大家汇总下&#xff0c;ios18的更新内容以及苹果的AI。 本次更新&#xff0c;官方带来的title…

FL Studio21永久免费破解中文版下载,让我这个音乐制作爱好者如获至宝!

FL Studio21永久免费破解中文版下载&#xff0c;让我这个音乐制作爱好者如获至宝&#xff01;&#x1f3b6; 这款软件功能强大&#xff0c;操作简单易上手。我可以轻松地创作出各种风格的音乐作品。无论是流行、摇滚还是电子音乐&#xff0c;都能轻松驾驭。&#x1f3a7; 使用F…

16.左侧导航菜单制作

左侧导航菜单制作 1. 修改路由&#xff0c;方便查看页面 index.ts import { RouteRecordRaw, createRouter, createWebHistory } from "vue-router"; import Layout from /layout/Index.vueconst routes: Array<RouteRecordRaw> [{path: /,name: home,comp…

【牛客面试必刷TOP101】Day31.BM60 括号生成和BM61 矩阵最长递增路径

文章目录 前言一、BM60 括号生成题目描述题目解析二、BM61 矩阵最长递增路径题目描述题目解析总结 前言 一、BM60 括号生成 题目描述 描述&#xff1a; 给出n对括号&#xff0c;请编写一个函数来生成所有的由n对括号组成的合法组合。 例如&#xff0c;给出n3&#xff0c;解集为…

Python办公MySQL(一):安装MySQL以及Navicat可视化工具(附送Navicat到期解决方法)

目录 专栏导读1、下载 MySQL Community Server2、安装3、安装Navicat4、连接刚刚安装的MySQL5、创建一个数据库方法1方法2 6、创建一张表方法1&#xff1a;准备一个test文件方法2&#xff1a; Navicat到期解决总结 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Pytho…

玩转ChatGPT:最全学术论文提示词分享【下】

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 本篇文章&#xff0c;是系列文章「最全学术论文提示词」的完结篇。前两篇的内容请到文末链接处跳转&#x1f447;&#x1f3fb; 11.提交和发布 prompt 1&#xff1a;根据[期刊/会议]指…

【GreenHills】关于GHS加密狗license激活成功后打开软件提示无可用授权

【更多软件使用问题请点击亿道电子官方网站】 1、 问题场景 用于解决在使用加密狗license去激活旧版本的GHS的时候&#xff0c;激活页面显示激活成功&#xff0c;但是&#xff0c;打开软件显示无可用license&#xff08;如图2-1&#xff09;&#xff0c;重新激活现象还是一样的…

SpringBoot高手之路jdk动态代理

文章目录 JDK动态代理基于jdk的动态代理Aop底层就是基于动态代理实现的实现代码先写代理对象工具 JDK动态代理 基于jdk的动态代理 业务需求 通过动态代理技术,对service层的方法统计执行时间–创建代理对象 Aop底层就是基于动态代理实现的 jdk动态代理技术是基于接口做的代理…

LNMP配置

文章目录 一、相关概念CGI的由来FastCGIPHP-FPM 二、编译安装编译安装nginxyum安装mysql编译安装php配置nginx支持php解析增加数据库安装论坛 一、相关概念 CGI的由来 最早的Web服务器只能简单地响应浏览器发来的HTTP请求&#xff0c;并将存储在服务器上的HTML文件返回给浏览器…

「动态规划」如何求粉刷房子的最少花费?

LCR 091. 粉刷房子https://leetcode.cn/problems/JEj789/description/ 假如有一排房子&#xff0c;共n个&#xff0c;每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种&#xff0c;你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。当然&#xff0c;因为市…

手把手教你通过 tensorflow-2.10 使用 BERT 实现 Semantic Similarity

前言 本文详细解释了在 tensorflow-gpu 基础上&#xff0c;实现用 BERT BILSTM 计算文本相似度的过程&#xff0c;主要的配置如下&#xff1a; tensorflow-gpu 2.10.0 python 3.10 transformers 4.26.1数据处理 这里导入了后续步骤需要用到的库&#xff0c;包括 NumPy、…