判断是否是完全二叉树

匿名 (未验证) 提交于 2019-12-02 23:43:01






2.2>如果遇到一个结点,左孩子不为空,右孩子为空;或者左右孩子都为空;则该节点之后的队列中的结点都为叶子节点;该树才是完全二叉树,否则就不是完全二叉树;

bool check(BiTree T)  {      if (T == NULL)         return false;         queue<BiTree> Q;         Q.push(T);         while (!Q.empty())          {              BiTree p = Q.front();              Q.pop();              if (p->left && p->right) {                   Q.push(p->left);                   Q.push(p->right);                                             }                 else if(p->right && p-left == NULL)                     return false;                 else                 {                     if(p->left && p-right == NULL)                         Q.push(p->left);                     while(!Q.empty())                     {                         p = Q.front(); Q.pop();                         if(p->left || p->right)                             return false;                     }                                 }                }         return true; }

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!