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

把二叉树打印成多行

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

};
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务