分享

剑指offer 39 平衡二叉树

 雪柳花明 2017-06-02

题目描述

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

class Solution {
    //后续遍历二叉树,遍历过程中求子树高度,判断是否平衡
public:
    bool IsBalanced_Solution(TreeNode* pRoot) {
		int dep=0;
        return IsBalanced(pRoot,dep);
    }
    
    bool IsBalanced(TreeNode *root,int &dep){
        if(root==NULL){
            return true;
        }
        
        int leftlen=0,rightlen=0;
        
        if(IsBalanced(root->left,leftlen)&&IsBalanced(root->right,rightlen)){
            int dif=leftlen-rightlen;
            if(dif<-1||dif>1){
                return false;
            }
            
            dep =(leftlen>rightlen?leftlen:rightlen)+1;
            return true;
        }
        return false;
    }
};

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多