剑指Offer——平衡二叉树

1、题目描述

  输入一棵二叉树,判断该二叉树是否是平衡二叉树。

2、代码实现

package com.baozi.offer;

/**
 * 输入一棵二叉树,判断该二叉树是否是平衡二叉树。
 *
 * @author BaoZi
 * @create 2019-07-14-9:11
 */
public class Offer27 {
    public boolean IsBalanced_Solution(TreeNode root) {
        if (root == null) {
            return true;
        }
        if (Math.abs(getHigh(root.left) - getHigh(root.right)) > 1) {
            return false;
        }
        return IsBalanced_Solution(root.left) && IsBalanced_Solution(root.right);
    }

    private int getHigh(TreeNode root) {
        if (root == null) {
            return 0;
        }
        int len_left = getHigh(root.left);
        int len_right = getHigh(root.right);
        return 1 + Math.max(len_left, len_right);
    }
}

  

原文地址:https://www.cnblogs.com/BaoZiY/p/11183136.html