难度:简单
频次:61

题目:

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

本题中,一棵高度平衡二叉树定义为:

一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。



解题思路:算深度+递归

注意

  • 这里算深度的递归函数,其实跟104 二叉树的最大深度的拆分树的递归版本一行,基本一字不差。
  • 在主函数里就两个东西
    - 判断是否为空,为空返回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;//判断是否平衡,任意一颗左子树跟右子树之间的高度差不超过1//也就是判断3个条件:当前子树是否符合,左子树是否符合,右子树是否符合return Math.abs(depth(root.left)-depth(root.right))<2&&isBalanced(root.left)&&isBalanced(root.right);}public int depth(TreeNode root){if(root==null) return 0;int left=depth(root.left);int right=depth(root.right);return Math.max(left,right)+1;}
}

leetcode 110. 平衡二叉树相关推荐

  1. LeetCode 110. 平衡二叉树(Balanced Binary Tree) 15

    110. 平衡二叉树 110. Balanced Binary Tree 题目描述 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点的左右两个子树 ...

  2. LeetCode 110. 平衡二叉树思考分析

    题目 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1. 示例 1: 给定二叉树 [3,9,20,null ...

  3. 39. Leetcode 110. 平衡二叉树 (二叉树-二叉树性质)

    给定一个二叉树,判断它是否是高度平衡的二叉树.本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 .示例 1:输入:root = [3,9,20,null, ...

  4. [leetcode]110.平衡二叉树

    给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 . 示例 1: 输入:root = [3,9,20,n ...

  5. LeetCode 110平衡二叉树-简单

    给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 . 示例 1: 输入:root = [3,9,20,n ...

  6. LeetCode 110. 平衡二叉树(二叉树高度)

    1. 题目 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1. 示例 1: 给定二叉树 [3,9,20,n ...

  7. 49 - 算法 - LeetCode 110 平衡二叉树 - 求二叉树的高度 -双重递归

    // 求二叉树的高度函数 nullptr为0 然后累加 +1 return left-right // 结论都还是递归 当前状态 多加了一个递归求高度 双重递归 class Solution {pub ...

  8. Leetcode 110.平衡二叉树

    Time: 20190901 Type: Easy 题目描述 思路 DFS遍历时判断是否满足平衡树的性质,如果不满足返回-1,直接截断计算. 代码 # Definition for a binary ...

  9. 2022-5-4 Leetcode 110.平衡二叉树

    这道题需要用到两个函数: 两个函数的处理逻辑分别是: 1)求树的高度 2)比较树的高度是否符合条件 /*** Definition for a binary tree node.* struct Tr ...

最新文章

  1. OSPF:LSA Type-7 to Type-5 转发地址抑制(实验)
  2. java应用的优化【转】
  3. 基于Python实现对各种数据文件的操作
  4. cypress 的错误消息 - the element has become detached or removed from the dom
  5. 纯C++创建Windows窗体(理解WinMain()与WndProc())
  6. 【全网最全】一文搞定 Linux 压缩、解压哪些事儿
  7. SpringMVC(3):DispatcherServlet详解
  8. 让OpenShift Serivce Mesh自动对服务注入sidecar
  9. JavaScript 刷题一
  10. 支持Flash和JavaScript的图表控件FusionWidgets
  11. 计算机编程思想 —— 缓存
  12. tensorflow版本1.11.0
  13. 清华大学计算机专业在职博士吧,清华大学在职博士含金量高吗?
  14. SVN修改服务器中的文件夹名称
  15. mac怎么无线打印机连接到服务器,Mac如何连接打印机-Mac连接打印机教程 - 河东软件园...
  16. 1024程序员节Bilibili电脑8位密码谜底
  17. 雷军和董明珠的赌局真的输了吗?其实我们都想错了
  18. rrpp协议如何修改_产品技术-RRPP技术介绍-新华三集团-H3C
  19. oracle 统计同比 环比,oracle求同比,环比函数(LAG与LEAD)的详解
  20. AMD发布22.11.1驱动,支持《使命召唤:战区2.0》

热门文章

  1. 数学:统计:基本概念
  2. Codeforces937D Sleepy Game
  3. 今天是周一,又是热的天气笼罩。
  4. unity, 由5.2.1f1升级到5.3.5f1,2d物理不正常解法
  5. 简单XML文件C#操作方法
  6. 实现人脸识别“干货”
  7. 【Linux】开源分布式存储系统:GlusterFS
  8. linux awk命令详解,使用system来内嵌系统命令,批量github,批量批下载视频, awk合并两列...
  9. 微软代码签名证书使用指南
  10. TikTok游戏话题浏览上涨,预示出海新机会