剑指offer | 训练题58:按之字形打印二叉树
来源:互联网 发布:手机用usb使用电脑网络 编辑:程序博客网 时间:2024/05/18 02:28
题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
思路
/** * 思路:BFS,新建一个队列,将每一层放进队列里循环读出,按照单数层和双数层决定要不要翻转vector *//*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 == nullptr) return ans; queue<TreeNode*> q; int level = 0; q.push(pRoot); while (!q.empty()) { int size = q.size(); vector<int> levelelem; level++; while (size--) { TreeNode* t = q.front(); q.pop(); levelelem.push_back(t->val); if (t->left != nullptr) q.push(t->left); if (t->right!= nullptr) q.push(t->right); } if (level%2!=0) ans.push_back(levelelem); else { reverse(levelelem.begin(),levelelem.end()); ans.push_back(levelelem); } } return ans; }};
阅读全文
0 0
- 剑指offer | 训练题58:按之字形打印二叉树
- 剑指offer----之字形打印二叉树
- 剑指offer--按之字形顺序打印二叉树
- 剑指offer 61 - 按之字形打印二叉树
- 《剑指offer》按之字形顺序打印二叉树
- 剑指offer—按之字形顺序打印二叉树
- 《剑指offer》——按之字形顺序打印二叉树
- 剑指offer:按之字形顺序打印二叉树
- 剑指offer:按之字形顺序打印二叉树
- [剑指offer]按之字形顺序打印二叉树
- 剑指offer(五十三)之按之字形顺序打印二叉树
- 剑指Offer--061-按之字形顺序打印二叉树
- 《剑指offer》:[61]按之字形顺序打印二叉树
- 剑指offer(56)-按之字形顺序打印二叉树
- 剑指offer——按之字形顺序打印二叉树
- 剑指offer|按之字形顺序打印二叉树
- 剑指offer-按之字形顺序打印二叉树
- 剑指offer-----按之字形顺序打印二叉树(java版)
- 栈(ADT)
- mysql数据库方言的选择问题
- macOS High Sierra公测版申请及下载安装
- 《算法概论》习题解答 8.10
- 剑指offer--面试题9:用两个栈实现队列
- 剑指offer | 训练题58:按之字形打印二叉树
- 磁珠还可以用来抑制纹波噪声?
- (转)投资很难赚到你不信的那份钱︱投资道
- 第八章课后题_1
- 2017暑假七林集训day16
- Scala练习-顺序查找
- 数据库的一些操作
- codevs 1214 线段覆盖 贪心 解题报告
- 内容简介