<span style="font-family: arial, STHeiti, 'Microsoft YaHei', 宋体; line-height: 22.3999996185303px; background-color: rgb(255, 255, 255);">从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。</span>
<span style="font-family: arial, STHeiti, 'Microsoft YaHei', 宋体; line-height: 22.3999996185303px; background-color: rgb(255, 255, 255);"></span><pre name="code" class="cpp">/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};
*/
class Solution {
public:
vector<vector<int> > Print(TreeNode* pRoot) {
vector<vector<int> > Vec;
if(!pRoot) return Vec;
queue<TreeNode*> queueTreeNode;
queueTreeNode.push(pRoot);
while(!queueTreeNode.empty())
{
int i = 0, num = queueTreeNode.size();
vector<int> layerVec;
while(i++ < num)
{
TreeNode *pNode = queueTreeNode.front();
queueTreeNode.pop();
layerVec.push_back(pNode->val);
if(pNode->left)
queueTreeNode.push(pNode->left);
if(pNode->right)
queueTreeNode.push(pNode->right);
}
Vec.push_back(layerVec);
}
return Vec;
}
};