LeetCode #110 平衡二叉树

Posted 三笠·阿卡曼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode #110 平衡二叉树相关的知识,希望对你有一定的参考价值。

题目

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

本题中,一棵高度平衡二叉树定义为:
一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。

示例

在这里插入图片描述

最佳代码

package com.vleus.algorithm.binary_tree;

/**
 * @author vleus
 * @date 2021年05月26日 22:58
 */
public class BalancedBinaryTree {

    //先序遍历
    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;
    }
}

以上是关于LeetCode #110 平衡二叉树的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode #110 平衡二叉树

⭐算法入门⭐《二叉树 - 平衡二叉树》简单01 —— LeetCode 110. 平衡二叉树

leetcode-----110. 平衡二叉树

每天一道leetcode-110平衡二叉树

[LeetCode] 110. 平衡二叉树

LeetCode110. 平衡二叉树