void levelOrder(Node * root){
//Write your code here
std::queue<Node*> q;
Node* c;
if(root != NULL)
{
q.push(root);
}
while (!q.empty())
{
c = q.front();
q.pop();
cout<<c->data<<endl<<" ";
if(c->left!=NULL) q.push(c->left);
if(c->right!=NULL) q.push(c->right);
}
}
比较神奇的地方是结合queue的知识,使用它的front和pop函数保证了下一个读取数的准确性,然后while loop 与最后push 的left 和right结合保证了准确的顺序