1. 程式人生 > >劍指offer—平衡二叉樹

劍指offer—平衡二叉樹

題目描述
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。

public class Solution {
    private boolean isBanlanced = true;
    public boolean IsBalanced_Solution(TreeNode root) {
        IsBalanced_depth(root);
        return isBanlanced;
    }
    public int IsBalanced_depth(TreeNode root){
        if(root==null) return 0;
        int
left = IsBalanced_depth(root.left); int right = IsBalanced_depth(root.right); int depth = Math.abs(left-right); if(depth>1) isBanlanced = false; return Math.max(left,right)+1; } }

思路:本道題目是樹的最大深度的延伸,樹中任意節點的左右子樹的深度差相差超過1,則該樹勢不平衡的,因此,根據樹的深度拿到題目的解法,只需要判斷左右子樹的深度是否大於1,大於1則返回false