平衡二叉树判断

2022-05-13 09:22:37 浏览数 (1)

题目描述

输入一棵二叉树,判断该二叉树是否是平衡二叉树。

思想:

平衡二叉树:它的左子树和右子树的深度之差(平衡因子)的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。

遍历二叉树,只要违反平衡二叉树规则,即不是平衡二叉树

哈哈,为数不多得我觉得自己代码还够简洁的算法题了

代码:

代码语言:javascript复制
   public boolean IsBalanced_Solution(TreeNode root) {
        if (root==null){
            return true;
        }
        return Math.abs(getDepth(root.left)-getDepth(root.right))>1?false:true&&IsBalanced_Solution(root.left)&&IsBalanced_Solution(root.right);
    }
    public int getDepth(TreeNode node){
        if (node==null){
            return 0;
        }
        return Math.max(getDepth(node.left),getDepth(node.right)) 1;
    }

0 人点赞