剑指offer-59.按之字形顺序打印二叉树
来源:互联网 发布:淘宝服装店铺简介范文 编辑:程序博客网 时间:2024/06/06 04:00
题目:请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
思路:打印二叉树,层次二叉树,层次遍历,这时用一个队列进行辅助较好,但是题目又要求要逆序打印,这时用一个标志位可好?好,奇数不反转,偶数反转,嗯,好的,去实现吧,还是不懂,好吧,看下面吧
/*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> >res; //采用层次遍历就想用到队列进行辅助 queue<TreeNode*>que; if (pRoot == NULL) return res; que.push(pRoot); bool even = false; while (!que.empty()) { vector<int>vec; int size = que.size(); for (int i = 0; i < size; i++) { TreeNode* temp = que.front(); //先保存,等一下就可能有用了 que.pop(); vec.push_back(temp->val); if (temp->left != NULL) que.push(temp->left); if (temp->right != NULL) que.push(temp->right); } //要进行反转判断了 if (even) std::reverse(vec.begin(), vec.end()); res.push_back(vec); even = !even;//单数不反转,双数反转 } return res; } };
0 0
- 剑指offer-59.按之字形顺序打印二叉树
- 剑指offer--按之字形顺序打印二叉树
- 《剑指offer》按之字形顺序打印二叉树
- 剑指offer—按之字形顺序打印二叉树
- 《剑指offer》——按之字形顺序打印二叉树
- 剑指offer:按之字形顺序打印二叉树
- 剑指offer:按之字形顺序打印二叉树
- [剑指offer]按之字形顺序打印二叉树
- 剑指offer(五十三)之按之字形顺序打印二叉树
- 剑指Offer--061-按之字形顺序打印二叉树
- 《剑指offer》:[61]按之字形顺序打印二叉树
- 剑指offer(56)-按之字形顺序打印二叉树
- 剑指offer——按之字形顺序打印二叉树
- 剑指offer|按之字形顺序打印二叉树
- 剑指offer-按之字形顺序打印二叉树
- 剑指offer-----按之字形顺序打印二叉树(java版)
- 【剑指Offer】按之字形顺序打印二叉树
- 剑指offer-按之字形顺序打印二叉树-php
- Jquery对<s:radio list="#{1:'是',0:'否'}" name=""></s:radio>清空设置
- ubuntu下xampp+dvwa安装到登入全过程
- poi导入数据
- 界面交互设计与表的约束
- 1066. Root of AVL Tree (25)
- 剑指offer-59.按之字形顺序打印二叉树
- 2017UESTC 数据结构专题题解
- Android Studio 结合 ButterKnife Zelezny 高效使用 Butterknife(黄油刀)
- JavaScript语言基础---(十五)应用编程练习--制作二级下拉菜单
- Qt中foreach的用法
- c++之指针一
- 1067. Sort with Swap(0,*) (25)
- 【设计模式】简单工厂模式
- [leetcode:python]35.Search Insert Position