题解 | #把二叉树打印成多行#

把二叉树打印成多行

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;
        }

};
全部评论

相关推荐

12-14 11:43
黑龙江大学 Java
用微笑面对困难:确实比较烂,可以这么修改:加上大学的qs排名,然后大学简介要写一些,然后硕士大学加大加粗,科研经历第一句话都写上在复旦大学时,主要负责xxxx,简历左上角把学校logo写上,建议用复旦大学的简历模板
点赞 评论 收藏
分享
做黑夜里的那道光:两年电赛完赛没必要写,纯扣分
双非本科求职如何逆袭
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务