把二叉树打印成多行

原创 2015年07月09日 15:02:10


  • 时间限制: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;
		}
};


相关文章推荐

《剑指offer》把二叉树打印成多行

题目:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。解析:层次遍历二叉树,要点是要用队列存储节点信息。还有个问题,如何知道要换层?答案是用一个计数器current指示当前层的节点个数...

《剑指offer》——把二叉树打印成多行

T: 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 解法都在代码注释当中了。我的code: import java.util.ArrayList; ...

剑指offer系列之五十五:把二叉树打印成多行

题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。此题实际上与上面一题是重复了,总体还是层序遍历的思路,只不过现在不需要在打印每一行之前对打印顺序进行判断了,所以可以在前面一题的...

【剑指Offer】把二叉树打印成多行

题目描述 时间限制:1秒 空间限制:32768K 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 代码(Java) import java.util.ArrayL...

牛客网刷题之把二叉树打印成多行

题目描述:解题思路:这题和前面之字形打印那题类似,不同的是,判断到达每一层重点时只需要换行即可。同样可以用start和end两个代表每一行的起始与终止。其他就是树的遍历问题了。题解:ArrayList...

【60】把二叉树打印成多行

【60】把二叉树打印成多行 参与人数:2502 时间限制:1秒 空间限制:32768K 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 牛客网题目链接:点击这里VS20...

剑指offer----把二叉树打印成多行----java实现

利用层次遍历的算法,设置变量last指向当前层的最后一个节点,设置变量count记录当前层已经访问的节点的个数,当count等于last时,表示该层访问结束。 层次遍历在求树的宽度、输出某一层节点,...
  • snow_7
  • snow_7
  • 2016年07月16日 20:55
  • 958

把二叉树打印成多行(Java实现)

本题为剑指offer面试题60 牛客网测试地址:https://www.nowcoder.com/questionTerminal/445c44d982d04483b04a54f298796288 ...

剑指offer(C++)——把二叉树打印成多行

题目描述 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 /* 思路:对二叉树进行层次遍历,利用一个队列来保存将要打印的结点。为了把二叉树的每一层结点单独打印...

剑指offer 面试题60 把二叉树打印成多行

剑指offer 面试题60 把二叉树打印成多行 题目: 从上到下按层打印二叉树,同一层的结点按从左到右顺序打印, 每一层打印到一行。例如下面的二叉树的结果为: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:把二叉树打印成多行
举报原因:
原因补充:

(最多只允许输入30个字)