笔试题:判断一个树是不是平衡二叉树

来源:互联网 发布:no surprises知乎 编辑:程序博客网 时间:2024/06/05 05:11
class Solution {public:    int length(TreeNode* t)    {        if(t==NULL)return 0;        return length(t->left)>length(t->right)?length(t->left)+1:length(t->right)+1;    }    bool IsBlance(TreeNode* t)    {        int len1 = length(t->left);        int len2 = length(t->right);        int temp = len1>len2?len1-len2:len2-len1;        return temp<=1;    }    bool IsBalanced_Solution(TreeNode* pRoot) {            queue<TreeNode*> Q;        if(pRoot==NULL)return true;        Q.push(pRoot);        while(Q.empty()==false)        {            TreeNode* p =Q.front();            if(p->left!=NULL)                Q.push(p->left);            if(p->right!=NULL)                Q.push(p->right);            if(IsBlance(p)==false)return false;            Q.pop();        }        return true;    }};

0 0
原创粉丝点击