题目:
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
代码:
class Solution {
public:
vector<vector<int> > Print(TreeNode* pRoot)
{
vector<vector<int> > res;
if(NULL == pRoot)
{
return res;
}
queue<TreeNode *> que;
que.push(pRoot);
while(!que.empty())
{
vector<TreeNode *> vecTmp;
vector<int> tmp;
while(!que.empty())
{
TreeNode * tmp = que.front();
que.pop();
vecTmp.push_back(tmp);
}
for(int i=0; i<vecTmp.size(); ++i)
{
tmp.push_back(vecTmp[i]->val);
if(NULL != vecTmp[i]->left)
{
que.push(vecTmp[i]->left);
}
if(NULL != vecTmp[i]->right)
{
que.push(vecTmp[i]->right);
}
}
res.push_back(tmp);
}
return res;
}
};