判断一棵树是不是平衡二叉树

public int getDepth(TreeNode rootnode) {
        if (rootnode == null) return 0;//如果当前节点为空返回深度为0
        int leftlength = getDepth(rootnode.left);
        int rigthlength = getDepth(rootnode.right);
        int nowlen = Math.max(leftlength, rigthlength);//当前节点子树的最大深度
        return nowlen + 1;//当前节点的最大深度
    }

    public boolean IsBalanced_Solution(TreeNode root) {
        if(root==null)return true;//当前节点为空返回true
        int leftLenght=getDepth(root.left);
        int rigthLength=getDepth(root.right);
        if(Math.abs(leftLenght-rigthLength)>1)return false;
        return IsBalanced_Solution(root.left) && IsBalanced_Solution(root.right);
    }

    原文作者:平衡二叉树
    原文地址: https://blog.csdn.net/genghaihua/article/details/80157049
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞