剑指offer面试题[60]-将二叉树打印成多行
题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
/*
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) { deque<TreeNode*> PrintOnLayer;vector<vector<int> > res;if(pRoot==NULL) //需判断树是否为空return res;vector<int> vec;PrintOnLayer.push_back(pRoot);int toBePrint=1; //表示当前层中还有没有打印的结点int NextLayerNode=0; //下一层结点的数目while(!PrintOnLayer.empty()){TreeNode* pNode=PrintOnLayer.front();PrintOnLayer.pop_front();vec.push_back(pNode->val);toBePrint--;if(pNode->left) //注意NextLayerNode在该层未打印完之前,若被打印的两个结点分别左右子节点,{ //NextLayerNode会增加到4。。。注意理解NextLayerNode++; PrintOnLayer.push_back(pNode->left); }if(pNode->right){NextLayerNode++;PrintOnLayer.push_back(pNode->right); } if(toBePrint==0){toBePrint=NextLayerNode;NextLayerNode=0;res.push_back(vec); //将每一层的数以vecror的形式存取到res中vec.clear(); //每一层打印完毕后需要将vec清除}}return res;}
};
剑指offer面试题[60]-将二叉树打印成多行相关推荐
- 剑指offer(C++)-JZ78:把二叉树打印成多行(数据结构-树)
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 给定一个节点数为 n 二叉树,要求从上到下按层打印二叉树的 val 值,同一层结点从 ...
- 剑指offer——面试题60:把二叉树打印成多行
剑指offer--面试题60:把二叉树打印成多行 Solution1: 20180911重做.经典题目.牢记做法! /* struct TreeNode {int val;struct TreeNod ...
- 剑指offer编程试题Java实现--60.把二叉树打印成多行
个人博客:小景哥哥 60.把二叉树打印成多行 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行. import java.util.ArrayList; import java ...
- 剑指offer——面试题58:二叉树的下一个结点
剑指offer--面试题58:二叉树的下一个结点 这个题要认真分析一下... Solution1: 自己想出来的破算法 /* struct TreeLinkNode {int val;struct T ...
- 剑指offer——面试题39:二叉树的深度
剑指offer--面试题39:二叉树的深度 20180906整理 Solution1: 再本题中树的定义:若二叉树只有一个根节点,则此二叉树的深度为1. 迭代法,哈哈哈 /* struct TreeN ...
- 【重点】剑指offer——面试题25:二叉树中和为某一值的路径
剑指offer--面试题25:二叉树中和为某一值的路径 参考网址:https://www.nowcoder.com/profile/5488508/codeBookDetail?submissionI ...
- 【递归】剑指offer——面试题19:二叉树的镜像
剑指offer--面试题19:二叉树的镜像 Solution1: 递归解法,牢记! 根结点为空的情况容易漏,注意! /* struct TreeNode {int val;struct TreeNod ...
- 剑指offer——面试题20:顺时针打印矩阵
剑指offer--面试题20:顺时针打印矩阵 Solution1: 可参考leetCode 54题的解法 书上的思路特别好,学习之~ class Solution { public:vector< ...
- 剑指offer面试题6 重建二叉树(java)
注:(1)java中树的构建 (2)构建子树时可以直接利用Arrays.copyOfRange(preorder, from, to),这个方法是左开右闭的 1 package com.xsf.Sor ...
最新文章
- iOS网络缓存扫盲篇--使用两行代码就能完成80%的缓存需求
- SVN 文件的解锁方法
- TypeScript 素描 - 函数
- mariadb 没有mysql表_数据未插入mySQL表(MariaDB)
- 【javascript 动态添加数据到 HTML 页面】
- 主成分分析(PCA)-最大方差解释
- 国外html游戏发展历史,17个国外游戏行业的网页设计欣赏
- java soap api操作和发送soap消息
- 日期上午下午怎么用date存_Java12都要出来了,你还在使用Date操作日期吗?
- 【codevs1073】家族
- [iOS] HealthKit 睡眠分析
- U盘插入电脑说要格式化,但电脑又说“磁盘被写保护,无法格式化”,如何解决
- android表情动画制作,GIF动态表情制作app
- python爬虫之xpath解析(附实战)
- android游戏后台运行点击桌面游戏图标游戏重启的解决方法
- Activiti7笔记(二)Activiti7一共涉及到25张表,哪些操作会涉及哪些表,每张表的作用是什么
- iPhone/iPad 传输文件/照片到电脑 - 实践
- 动画 | 大学四年结束之前必须透彻的排序算法
- python—基础练习2
- PCL:StatisticalOutlierRemoval 统计滤波