算法打卡Day21_leetcode _110.平衡二叉树

简介: 算法打卡Day21_leetcode _110.平衡二叉树

Leetcode原题

110.平衡二叉树

20200401134307494.png

思路

什么是平衡二叉树呢,就是它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。所以我们的思路只要分别计算出左右子树的高度,然后相减绝对值小于1就判为平衡二叉树,否则返回-1,不是平衡二叉树。

方法一 递归

class Solution {
   public boolean isBalanced(TreeNode root){
        if (root ==null){
            return true;
        }
       return helper(root)!= -1;
   }
   private int helper(TreeNode root){
        if (root==null){
            return 0;
        }
        int left_h =helper(root.left); //左子树高度
        int right_h =helper(root.right); //右子树高度
        if (left_h== -1 || right_h == -1 || Math.abs(left_h- right_h)>1){ //判断左右子树高度是否大于1,大于1说明不是平衡二叉树
            return -1;
        }
        return Math.max(left_h,right_h)+1;
   }
}

有兴趣的老爷,还可以关注我的公众号【一起收破烂】,回复【006】获取 最新java面试资料以及简历模型120套哦~

相关文章
|
1月前
|
算法
Leetcode 初级算法 --- 数组篇
Leetcode 初级算法 --- 数组篇
37 0
|
18天前
|
算法
每日一道算法题(Leetcode 20)
每日一道算法题(Leetcode 20)
21 2
|
24天前
|
存储 算法 数据管理
数据结构与算法学习二零:二叉排序树(BST)、平衡二叉树(AVL)
这篇文章通过需求分析、代码实现和测试验证,详细介绍了二叉排序树的创建、遍历和删除操作,以及二叉平衡树(AVL)的自平衡特性和单旋转操作,旨在提高树结构在数据管理中的效率和性能。
22 0
数据结构与算法学习二零:二叉排序树(BST)、平衡二叉树(AVL)
|
25天前
【LeetCode 33】110.平衡二叉树
【LeetCode 33】110.平衡二叉树
10 1
|
3月前
|
算法 Java 关系型数据库
leetcode110-平衡二叉树
文章通过LeetCode第110题"平衡二叉树"的解题过程,深入讲解了平衡二叉树的定义、树的高度概念,并提供了使用后序遍历算法判断二叉树是否平衡的Java代码实现,强调了理解理论知识和实践编码的重要性。
|
3月前
|
算法 Java
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
49 6
|
3月前
|
人工智能 算法 Java
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
48 1
|
3月前
|
存储 算法 Java
LeetCode经典算法题:预测赢家+香槟塔java解法
LeetCode经典算法题:预测赢家+香槟塔java解法
49 1
|
3月前
|
Python
【Leetcode刷题Python】110. 平衡二叉树
LeetCode第110题"平衡二叉树"的Python解决方案,通过计算二叉树的高度并判断任意两个子树的高度差是否不超过1来确定树是否平衡。
20 2
|
3月前
|
存储 算法 Java
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
76 0