题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行
题解:
该题可参考上一篇博文,删除奇偶行判断,换成两个队列即可
class Solution {
public:
vector<vector<int> > Print(TreeNode* pRoot) {
vector<vector<int> > array;
vector<int> line;
queue<TreeNode*> Q1;
queue<TreeNode*> Q2;
TreeNode* tmp;
if (pRoot==NULL)
return array;
Q1.push(pRoot);
while (!Q1.empty())
{
line.clear();
while (!Q1.empty())
{
tmp = Q1.front();
line.push_back(tmp->val);
Q1.pop();
if (tmp->left)
Q2.push(tmp->left);
if (tmp->right)
Q2.push(tmp->right);
}
while (!Q2.empty())
{
Q1.push(Q2.front());
Q2.pop();
}
array.push_back(line);
}
return array;
}
};