判断是否为平衡二叉树

Posted jihuabai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断是否为平衡二叉树相关的知识,希望对你有一定的参考价值。


题目:如标题所示。

链接:https://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222?tpId=13&tqId=11192&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

 

Code如下:

 

public class Solution 
    //后续遍历时,遍历到一个节点,其左右子树已经遍历  依次自底向上判断,每个节点只需要遍历一次
     
    private boolean isBalanced=true;
    public boolean IsBalanced_Solution(TreeNode root) 
         
        getDepth(root);
        return isBalanced;
    
    public int getDepth(TreeNode root)
        if(root==null)
            return 0;
        int left=getDepth(root.left);
        int right=getDepth(root.right);
         
        if(Math.abs(left-right)>1)
            isBalanced=false;
        

        // left,right是对当前节点的左右子节点进行遍历,return Math.max(left,right)+1
         // 则是求出当前节点的深度,并将结果抛给上一层。
        // 这三个步骤相结合则是一次后序遍历(左右根)
        return right>left ?right+1:left+1;
         
    

 

以上是关于判断是否为平衡二叉树的主要内容,如果未能解决你的问题,请参考以下文章

python判断二叉树是否为平衡二叉树

Day54: 判断是否为平衡二叉树

判断是否为平衡二叉树

平衡二叉树判断

"Coding Interview Guide" -- 判断二叉树是否为平衡二叉树

《剑指offer》:[39-1]判断是否为平衡二叉树