题目
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
代码
层次遍历
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) {
queue<TreeNode*> Q;
vector<vector<int> > result;
TreeNode *p;
int len,i;
if(pRoot==NULL) return result;
Q.push(pRoot);
while(!Q.empty()){
vector<int> res;
len=Q.size();
for(i=0;i<len;i++){
p=Q.front();
res.push_back(p->val);
Q.pop();
if(p->left){
Q.push(p->left);
}
if(p->right){
Q.push(p->right);
}
}
result.push_back(res);
}
return result;
}
};