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

劍指offer -- 平衡二叉樹

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

如果一棵樹是平衡二叉樹則返回該樹的高度,否則返回-1
對於一棵樹只要判斷其左右子樹均為平衡二叉樹且高度相差不超過1則為平衡二叉樹

public class Solution {
    public boolean IsBalanced_Solution(TreeNode root) {
        int h = getDepth(root);
        boolean res = h == -1 ? false : true ;
        return res;
    } 

    private int getDepth
(TreeNode root){ if( root == null) return 0; int left = getDepth(root.left); if(left == -1) return -1; int right = getDepth(root.right); if(right == -1 || Math.abs(left-right) > 1) return -1; else return Math.max(left, right) + 1; } }