把二叉树打印成多行

来源:互联网 发布:知乎 旅游带什么 编辑:程序博客网 时间:2024/05/20 23:37


  • 时间限制:1秒空间限制:32768K
  • 通过比例:36.66%
  • 最佳记录:0 ms|8552K

题目描述

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

/*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> > ret;            if(!pRoot) return ret;            vector<TreeNode *> queue;            vector<int> curval;            int start=0,end=0;            queue.push_back(pRoot);                        while(start<=end){                for(int i=start;i<=end;++i){                    if(queue[i]->left) queue.push_back(queue[i]->left);                    if(queue[i]->right) queue.push_back(queue[i]->right);                curval.push_back(queue[i]->val);                }                                ret.push_back(curval);                curval.clear();                start=end+1;                end=queue.size()-1;            }            return ret;}};


0 0
原创粉丝点击