其他分享
首页 > 其他分享> > 平衡二叉树

平衡二叉树

作者:互联网

offer_39

概要:平衡二叉树

题目描述

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

在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树

思路:

image-20200812112614256

代码实现:

    public boolean IsBalanced_Solution(TreeNode root) {
        if(root == null) return true;
        //获取左子树的深度,注意,传入的是当前树的左子节点
        int left = getDepth(root.left);
        //获取右子树的深度。传入的是当前树的右子节点
        int right = getDepth(root.right);
        //如果左右子树的深度的差值>1 就说明不是平衡二叉树
        return Math.abs(left - right) > 1? false: true;
      
    }
    //获取树的深度
 public int   getDepth(TreeNode root){//传入的是当前树的头结点,把头结点在的这一层代表深度为1,所以后面要加上当前层也就是+1
     
  return (root == null)? 0: Math.max(getDepth(root.left),getDepth(root.right))+1;
     
     
 }

标签:结点,getDepth,右子,二叉树,深度,平衡,root
来源: https://www.cnblogs.com/SunAlbert/p/13489890.html