剑指offer | 训练题59:把二叉树打印成多行

来源:互联网 发布:excel数据分析占比 编辑:程序博客网 时间:2024/06/09 14:01

题目描述

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

思路

//思路:BFS/*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) {            vector<vector<int> > ans;            if(pRoot == NULL) return ans;            queue<TreeNode*> q;            q.push(pRoot);            while(!q.empty()){                int size = q.size();//读取每一层的元素的数量                vector<int> levelelem;                while(size--){                    TreeNode* t = q.front();                    q.pop();                    levelelem.push_back(t->val);                    if(t->left != NULL) q.push(t->left);                    if(t->right != NULL) q.push(t->right);                }                ans.push_back(levelelem);            }            return ans;        }};
原创粉丝点击