剑指offer 按之字形顺序打印二叉树
来源:互联网 发布:随遇软件 编辑:程序博客网 时间:2024/05/22 04:30
题目描述
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
思路:典型的层次遍历,但是要按之字形打印,所以遍历的时候要分奇偶层,则要在遍历里稍微改动一下,一次要遍历一层,而不是一次只遍历一个结点。
代码:
/*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> >vec; if(pRoot==nullptr) return vec; queue<TreeNode*>Q; Q.push(pRoot); vector<int>vec1; vec1.push_back(pRoot->val); vec.push_back(vec1); int layer = 2; while(!Q.empty()) { int size = Q.size(); vec1.clear(); for(int i=0;i<size;i++) { TreeNode* tmp = Q.front(); if(tmp->left) { vec1.push_back(tmp->left->val); Q.push(tmp->left); } if(tmp->right) { vec1.push_back(tmp->right->val); Q.push(tmp->right); } Q.pop(); } if(layer%2==0) reverse(vec1.begin(),vec1.end()); if(vec1.size()>0) vec.push_back(vec1); ++layer; } return vec; }};
阅读全文
0 0
- 剑指offer--按之字形顺序打印二叉树
- 《剑指offer》按之字形顺序打印二叉树
- 剑指offer—按之字形顺序打印二叉树
- 《剑指offer》——按之字形顺序打印二叉树
- 剑指offer:按之字形顺序打印二叉树
- 剑指offer:按之字形顺序打印二叉树
- [剑指offer]按之字形顺序打印二叉树
- 剑指offer(五十三)之按之字形顺序打印二叉树
- 剑指Offer--061-按之字形顺序打印二叉树
- 《剑指offer》:[61]按之字形顺序打印二叉树
- 剑指offer(56)-按之字形顺序打印二叉树
- 剑指offer——按之字形顺序打印二叉树
- 剑指offer|按之字形顺序打印二叉树
- 剑指offer-按之字形顺序打印二叉树
- 剑指offer-----按之字形顺序打印二叉树(java版)
- 【剑指Offer】按之字形顺序打印二叉树
- 剑指offer-按之字形顺序打印二叉树-php
- 剑指offer-59.按之字形顺序打印二叉树
- 一周资讯 | 讯飞下,我茁壮成长
- 第二周
- 【八中*二叉树】这是一棵树吗?
- Android selector中嵌套shape
- Unity(五) Unity3D使用Assetbundle打包加载(Prefab、场景)转载原博客
- 剑指offer 按之字形顺序打印二叉树
- connect函数崩溃
- txt文件加密
- java爬取西刺ip代理练习
- Windows下Qt使用Usb摄像头采集视频实现鼠标事件
- Linux文件系统
- Tomcat 启动问题
- Spring MVC基本配置
- iOS之UIButton