力扣110. 平衡二叉树Java

简介: 力扣110. 平衡二叉树Java

题目

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

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

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

image.png

代码

 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;

       return Math.abs(height(root.left) - height(root.right)) <= 1 && isBalanced(root.left) && isBalanced(root.right);

   }

   public int height(TreeNode root) {

       if (root == null) return 0;

       return Math.max(height(root.left), height(root.right)) + 1;

   }

}

相关文章
|
3月前
【LeetCode 33】110.平衡二叉树
【LeetCode 33】110.平衡二叉树
17 1
|
3月前
|
算法 Java
LeetCode(一)Java
LeetCode(一)Java
|
5月前
|
算法 Java 关系型数据库
leetcode110-平衡二叉树
文章通过LeetCode第110题"平衡二叉树"的解题过程,深入讲解了平衡二叉树的定义、树的高度概念,并提供了使用后序遍历算法判断二叉树是否平衡的Java代码实现,强调了理解理论知识和实践编码的重要性。
|
5月前
|
算法 Java
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
59 6
|
5月前
|
存储 算法 Java
LeetCode经典算法题:打家劫舍java详解
LeetCode经典算法题:打家劫舍java详解
80 2
|
5月前
|
人工智能 算法 Java
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
56 1
|
5月前
|
存储 算法 Java
LeetCode经典算法题:预测赢家+香槟塔java解法
LeetCode经典算法题:预测赢家+香槟塔java解法
73 1
|
5月前
|
Python
【Leetcode刷题Python】110. 平衡二叉树
LeetCode第110题"平衡二叉树"的Python解决方案,通过计算二叉树的高度并判断任意两个子树的高度差是否不超过1来确定树是否平衡。
32 2
|
5月前
|
存储 算法 Java
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
84 0
|
5月前
|
算法 Java
LeetCode初级算法题:环形链表+排列硬币+合并两个有序数组java解法
LeetCode初级算法题:环形链表+排列硬币+合并两个有序数组java解法
59 0