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

79 阅读1分钟

输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。
在这里插入图片描述
java

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    int i =0;
    public boolean isBalanced(TreeNode root) {
        recurr(root);
        if(i==2) return false;
        return true;
    }
    int recurr(TreeNode root){
        if(root==null) return 0;
        int l = recurr(root.left);

        int r = recurr(root.right);
        
        return Math.abs(l-r)>1 ? i=2 : Math.max(l,r)+1;

    }
}