输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。
例如输入
8
/ /
6 10
/ / / /
5 7 9 11
输出8 6 10 5 7 9 11。
queue<TNode*> m_queue;
void visitByLevel(TNode* root) {
if (!root)
return;
if (m_queue.empty()) {
m_queue.push(root);
}
while (!m_queue.empty()) {
TNode* tmp = m_queue.front();
m_queue.pop();
cout << tmp->data << ' ';
if (tmp->left) {
m_queue.push(tmp->left);
}
if (tmp->right) {
m_queue.push(tmp->right);
}
}
}