剑指offer三十九之平衡二叉树

一、题目

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

二、思路

     详解代码。

三、代码

public class Solution {
    //判断根节点左右子树的深度,高度差超过1,则不平衡
    public boolean IsBalanced_Solution(TreeNode root) {
        if (root==null) {
            return true;
        }
        int left = getTreeDepth(root.left);
        int right = getTreeDepth(root.right);
        return Math.abs(left-right)>1?false:true;
    }
    //求取节点的深度
    public static int getTreeDepth(TreeNode root) {
        if (root==null) {
            return 0;
        }
        int leftDepth = 1+getTreeDepth(root.left);
        int rightDepth = 1+getTreeDepth(root.right);
        return leftDepth>rightDepth?leftDepth:rightDepth;
    }
}

View Code

———————————–

参考链接:

https://www.nowcoder.com/questionTerminal/8b3b95850edb4115918ecebdf1b4d222

    原文作者:hezhiyao
    原文地址: https://www.cnblogs.com/hezhiyao/p/7658038.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞