题解 | #把二叉树打印成多行#
把二叉树打印成多行
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; } };