二叉树的层次遍历主要用到了队列。
- 先将根节点放入队列,节点出队,打印节点
- 若该节点有子节点,则子节点入队
- 队首出队,打印节点,若该节点有子节点,则子节点入队,直到队列为空
void Level(TreeNode* root)
{
queue<TreeNode*> q;
if(root==NULL)
return;
q.push(root);
while(!q.empty())
{
TreeNode* p=q.front();
q.pop();
cout<<p->val<<" ";
if(p->left != NULL)
q.push(p->left);
if(p->right != NULL)
q.push(p->right);
}
}