1. 程式人生 > >[leetcode] 110. 平衡二叉樹

[leetcode] 110. 平衡二叉樹

110. 平衡二叉樹

實際上遞迴的求每一個左右子樹的最大深度即可,如果差值大於1,返回一個-1的狀態上去

class Solution {
    public boolean isBalanced(TreeNode root) {
        return depth(root)!=-1;
    }

    public int depth(TreeNode root) {
        if (null == root) return 0;
        int left = depth(root.left);
        int right = depth(root.right);

        if (left != -1 && right != -1 && Math.abs(left - right) <= 1) {
            return Math.max(left, right) + 1;
        } else {
            return -1;
        }
    }
}