【算法】二叉树遍历(层序)

1.问题描述:

   层序遍历二叉树;

 

2.分析:

   用队列实现,首先将头节点加入队列;如果队列不为空,则执行如下操作:从队列中取出元素输出,若该元素的子节点不为空,则将其加入队列。

 

3.代码实现:

 void levelSort(TreeNode * pHead) { deque<TreeNode *> dequeue; //a queue stores the pointer TreeNode *pCurrent=NULL; dequeue.push_back(pHead); //Add the header element while (!dequeue.empty()) { pCurrent=dequeue.front(); dequeue.pop_front(); if (pCurrent->pLeft!=NULL) dequeue.push_back(pCurrent->pLeft); if (pCurrent->pRight!=NULL) dequeue.push_back(pCurrent->pRight); cout<<pCurrent->data<<endl; } }

你可能感兴趣的:(算法,header,null)