【剑指offer-解题系列(61)】把二叉树打印成多行
来源:互联网 发布:淘宝上卖内衣的货源 编辑:程序博客网 时间:2024/05/17 20:00
题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
分析
层次打印使用队列就行了,和上一篇的方法几乎一模一样,只是堆栈换成队列,另外不需要符号了
代码实现
vector<vector<int> > Print(TreeNode* root) {
vector<vector<int> >res;if(!root)
return res;
TreeNode*p=NULL;
Q1.push(root);
while(!Q1.empty() || !Q2.empty()){
vector<int>r1;
while(!Q1.empty()){
p = Q1.front();
r1.push_back(p->val);
Q1.pop();
if(p->left ) Q2.push(p->left );
if(p->right) Q2.push(p->right);
}
if(!r1.empty())res.push_back(r1);
vector<int>r2;
while(!Q2.empty()){
vector<int>r;
p = Q2.front();
r2.push_back(p->val);
Q2.pop();
if(p->left ) Q1.push(p->left );
if(p->right ) Q1.push(p->right);
}
if(!r2.empty())res.push_back(r2);
}
return res;
}
queue<TreeNode*>Q1;
queue<TreeNode*>Q2;
阅读全文
0 0
- 【剑指offer-解题系列(61)】把二叉树打印成多行
- 【剑指offer-解题系列(22)】从上到下打印二叉树
- 剑指offer系列之五十五:把二叉树打印成多行
- 剑指offer系列之59:把二叉树打印成多行
- 剑指offer--把二叉树打印成多行
- 《剑指offer》把二叉树打印成多行
- 剑指Offer--把二叉树打印成多行
- 剑指offer:把二叉树打印成多行
- 剑指offer:把二叉树打印成多行
- [剑指offer]把二叉树打印成多行
- 剑指offer|把二叉树打印成多行
- 【剑指Offer】把二叉树打印成多行
- 剑指offer 把二叉树打印成多行
- 《剑指offer》把二叉树打印成多行
- 剑指offer-把二叉树打印成多行
- 剑指offer--把二叉树打印成多行
- 剑指offer--把二叉树打印成多行
- 剑指offer-把二叉树打印成多行
- Kotlin中类和对象初始化
- 成员内部类、静态内部类、局部内部类、匿名内部类
- Python入门学习(4)
- javascript 对象判空
- java虚拟机指令详解
- 【剑指offer-解题系列(61)】把二叉树打印成多行
- 基于ZigBee的物联网环境数据采集系统
- EXCEL VBAProject密码破解 工作表密码破解
- 不在activity中打开activity的方法
- 考试,一种严格的水平鉴定方法。
- AndroidStudio多渠道打包
- 内存分析—对象的实例化过程
- Java反射机制
- 单例模式 解析