二叉树操作--判断该二叉树是否是平衡二叉树

平衡二叉树        

        平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

题目描述

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

 

以下代码是在牛客网上运行通过的代码:

class Solution {
    private:
    int TreeDepth(TreeNode* pRoot)
    {
    
        if(pRoot==NULL) return 0;
        
        int leftCount = TreeDepth(pRoot->left);
        int rightCount = TreeDepth(pRoot->right);
        
        int count=0;
        if(leftCount>rightCount){
            count = leftCount +1;
        }else{
            count = rightCount + 1;
        }
        return count;
    }
public:
    bool IsBalanced_Solution(TreeNode* pRoot) {
        
         if(pRoot==NULL) return true;
        
        int leftCount = TreeDepth(pRoot->left);
        int rightCount = TreeDepth(pRoot->right);

        if(leftCount>rightCount+1 || leftCount+1 <rightCount  )
            return false;
        
        return true;
        

    }
};

 

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