剑指 Offer 55 - II. 平衡二叉树

在求二叉树深度的基础上改造,增加返回值 -1 表示不是平衡二叉树,如果是平衡二叉树则正常返回其深度。

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

    int depth(TreeNode root){
        if(root == null) return 0;

        int left = depth(root.left);
        if(left == -1) return -1;
        int right = depth(root.right);
        if(right == -1) return -1;

        return Math.abs(left - right) <= 1 ? 1 + Math.max(left, right) : -1;
    }
}