题解 | #把二叉树打印成多行#
把二叉树打印成多行
http://www.nowcoder.com/practice/445c44d982d04483b04a54f298796288
层次遍历,用队列,如果还要用到层数,用一变量刻画队列的每一层的大小,输出一个数,就--,为0就表示这一层结束了,如果此时队列还没为空,level+1。
代码:
class Solution {
public:
vector<vector<int> > Print(TreeNode* pRoot) {
vector<vector<int>> ret;
queue<TreeNode*> q;
if(!pRoot) return ret;
q.push(pRoot);
while(!q.empty()){
int sz = q.size();
vector<int> ans;
while(sz--){
TreeNode* node = q.front();
q.pop();
ans.push_back(node->val);
if(node->left) q.push(node->left);
if(node->right) q.push(node->right);
}
ret.push_back(ans);
}
return ret;
}
};