二叉树层次遍历
可以通过求第K层的结点,但是反复递归时间复杂度很高
可以通过队列来实现
void LevelTraverse(BiTNode * pRoot)
{
if(pRoot == NULL)
return;
queue<BiTNode *> q;
q.push(pRoot);
while(!q.empty())
{
BiTNode * pNode = q.front();
q.pop();
cout<<pNode->data << endl; // 访问节点
if(pNode->lchild != NULL)
q.push(pNode->lchild);
if(pNode->rchild != NULL)
q.push(pNode->rchild);
}
return;
}
一切源于对计算机的热爱

浙公网安备 33010602011771号