只要将根节点传入即可
template<class T>
bool BinTree<T>::isWholeBinTree(BinTreeNode<T> *root)
{
if (root == 0)
return false;
BinTreeNode<T> *temp = root,*p;
deque<BinTreeNode<T>*> q;
if (temp != 0)
q.push_back(temp);
while (!q.empty())
{
p = q.front();
q.pop_front();
if ((p->GetLeft()) != 0)
q.push_back(p->GetLeft());
else
{
if (p->GetRight() != nullptr)
return false;
else
{
while (!q.empty()){
BinTreeNode<T> *temp1 = q.front();
q.pop_front();
if (temp1->GetLeft() != nullptr||temp1->GetRight() != nullptr)
return false;
}
}
}
if ((p->GetRight()) != 0)
q.push_back(p->GetRight());
else
{
while (!q.empty()){
BinTreeNode<T> *temp1 = q.front();
q.pop_front();
if (temp1->GetLeft() != nullptr||temp1->GetRight() != nullptr)
return false;
}
}
}
return true;
}