void printLevel(NODE *pHead)
{
std::list<NODE *> NodeList; //这里不能用vector
NODE *pCur = pHead;
if (!pHead)
return;
NodeList.push_back(pHead);
std::list<NODE *>::iterator itr = NodeList.begin();
while (itr != NodeList.end())
{
if ((*itr)->pre)
{
NodeList.push_back((*itr)->pre);
}
if ((*itr)->rear) // 如果这里用了vector,当vector添加新的元素后, itr 将会变成无效
{
NodeList.push_back((*itr)->rear);
}
++itr;
}
for (itr = NodeList.begin(); itr != NodeList.end(); ++itr)
{
printf("%d ", (*itr)->val);
}
printf("\r\n");
}
按层输出二叉树
最新推荐文章于 2022-10-18 01:06:59 发布