110. 平衡二叉树
发布日期:2021-07-27 05:33:17
浏览次数:4
分类:技术文章
本文共 1121 字,大约阅读时间需要 3 分钟。
给定一个二叉树,判断它是否是高度平衡的二叉树。
本题中,一棵高度平衡二叉树定义为:
一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。
输入:root = [3,9,20,null,null,15,7] 输出:true 示例 2: 输入:root = [1,2,2,3,3,null,null,4,4] 输出:false 示例 3:示例 1:
输入:root = []
输出:true思路
-左右子树高度差的绝对值小于等于1
- 递归左子树
- 递归右子树
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */class Solution { public boolean isBalanced(TreeNode root) { if(root==null){ return true; } int lh=getHigh(root.left); int rh=getHigh(root.right); return Math.abs(lh-rh)<=1&&isBalanced(root.left)&&isBalanced(root.right); } //求高度 public int getHigh(TreeNode root){ if(root==null){ return 0; } int lh=getHigh(root.left); int rh=getHigh(root.right); return Math.max(lh,rh)+1; }}
复杂度
时间复杂度O(n log n)
空间复杂度O(n):树退化为链表递归深度n
转载地址:https://blog.csdn.net/qq_45630711/article/details/115435346 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年09月26日 05时59分26秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
我们一起做一个可以商用的springboot脚手架
2019-05-27
idea在搭建ssm框架时mybatis整合问题 无法找到mapper
2019-05-27
java设计基本原则----单一职责原则
2019-05-27
HashMap的实现
2019-05-27
互斥锁 synchronized分析
2019-05-27
java等待-通知机制 synchronized和waity()的使用实践
2019-05-27
win10 Docke安装mysql8.0
2019-05-27
docker 启动已经停止的容器
2019-05-27
order by 排序原理及性能优化
2019-05-27
Lock重入锁
2019-05-27
docker安装 rabbitMq
2019-05-27
git 常用命令 入门
2019-05-27
linux安装docker
2019-05-27
关闭selinx nginx无法使用代理
2019-05-27
shell 脚本部署项目
2019-05-27
spring cloud zuul网关上传大文件
2019-05-27
springboot+mybatis日志显示SQL
2019-05-27
工作流中文乱码问题解决
2019-05-27
maven打包本地依赖包
2019-05-27
spring boot jpa 实现拦截器
2019-05-27