牛客题霸 [二叉树的之字形层序遍历] C++题解/答案
牛客题霸 [二叉树的之字形层序遍历] C++题解/答案
题目描述
给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)
例如:
给定的二叉树是{3,9,20,#,#,15,7},
该二叉树之字形层序遍历的结果是
[
[3],
[20,9],
[15,7]
]
题解:
因为是之字形,所以如果是偶数行就从左向右遍历,如果是奇数行就从右向左遍历,我们可以用一个bool变量flag来标记当前是偶还是奇
代码:
/*** struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/class Solution {public:/*** * @param root TreeNode类 * @return int整型vector<vector<>>*/vector<vector<int> > zigzagLevelOrder(TreeNode* root) {// write code hereif(root == nullptr) return {};vector<vector<int>> res;queue<TreeNode*> q;q.push(root);vector<int> temp;bool flag = 0;while(q.size()){int n = q.size();while(n--){TreeNode* node = q.front();q.pop();temp.push_back(node->val);if(node->left) q.push(node->left);if(node->right) q.push(node->right);}if(flag) reverse(temp.begin(),temp.end());//翻转res.push_back(temp);temp.clear();flag = !flag;}return res;}
};
牛客题霸 [二叉树的之字形层序遍历] C++题解/答案相关推荐
- 牛客题霸 [两个链表生成相加链表] C++题解/答案
牛客题霸 [两个链表生成相加链表] C++题解/答案 题目描述 假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数. 给定两个这种链表,请生成代表两个整数相加值的结果链表. ...
- 牛客题霸 [二进制中1的个数] C++题解/答案
牛客题霸 [二进制中1的个数] C++题解/答案 题目描述 输入一个整数,输出该数32位二进制表示中1的个数.其中负数用补码表示. 题解: 判断1的个数 x&(-x)=2^k 有点类似于树状数 ...
- 牛客题霸 [合并两个有序的数组] C++题解/答案
牛客题霸 [合并两个有序的数组] C++题解/答案 题目描述 给出两个有序的整数数组 和 ,请将数组 合并到数组 中,变成一个有序的数组 注意: 可以假设 数组有足够的空间存放 数组的元素, 和 中初 ...
- 牛客题霸 [连续子数组的最大和] C++题解/答案
牛客题霸 [连续子数组的最大和] C++题解/答案 题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和 ...
- 牛客题霸 判断链表中是否有环 C++题解/答案
牛客题霸 判断链表中是否有环 C++题解/答案 题目描述 判断给定的链表中是否有环 扩展: 你能给出空间复杂度的解法么? 题解: 在这介绍一个简便的方法:快慢指针 就是:一个指针走两步,一个指针走一步 ...
- 牛客题霸 [用两个栈实现队列] C++题解/答案
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 题解: 我们都知道栈的性质是先进后出,队列是先进先出 我们用两个栈来模拟出队列 可以先用一个栈来存数,当 ...
- 牛客题霸 [判断一个链表是否为回文结构] C++题解/答案
判断一个链表是否为回文结构 题目描述 给定一个链表,请判断该链表是否为回文结构. 题解: 直接将链表内的数据存入string中,然后从两端开始向中间判断即可 代码: /*** struct ListN ...
- 牛客题霸 [二叉树的镜像]C++题解/答案
牛客题霸 [二叉树的镜像]C++题解/答案 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 题解: 根据题也不难看出,二叉树的镜像定义其实就是左右树翻转 所以我们一直递归左子树,到头后递归右子 ...
- 牛客题霸 [二叉树中是否存在节点和为指定值的路径] C++题解/答案
牛客题霸 [二叉树中是否存在节点和为指定值的路径] C++题解/答案 题目描述 给定一个二叉树和一个值\ sum sum,判断是否有从根节点到叶子节点的节点值之和等于\ sum sum 的路径, 例如 ...
最新文章
- BAPI_GOODSMVT_CREATE的几个应用
- 操作系统(十四)进程调度的时机、调度方式
- 丢了好几年的 Auto CAD又拿起来......
- JavaScript中的地图与对象
- MySQL 复制滞后怎么办?
- phpstorm docker php,使用phpstorm对docker中的脚本进行debug的方法
- ISA2006之SP1的作用
- CloudStack之nfs
- JavaScript用法(1)
- 拓端tecdat|关联规则APRIORI挖掘豆瓣读书评论爬虫采集数据与可视化
- 【图像去噪】基于matlab GUI空域+频域滤波图像去噪【含Matlab源码 914期】
- cisco产品命名规则
- 高频分类ISO1443, ISO15693, ISO18000-3
- VB.NET2010 编程实现Word双面打印
- 数据库的基本语句(mysql举例)
- 颜色对照表(四)(16进制、RGB、CMYK、HSV、中英文名)
- 东方联盟郭盛华:坚定站在移动安全的最前沿
- Busting Frame Busting: a Study of Clickjacking Vulnerabilities on Popular Sites
- 基于JAVA的葫芦娃救爷爷游戏
- vivo 5G旗舰机真的要来了?新商标好抢眼!
热门文章
- 百般受虐!“波士屯动力”机器人这一次枪口对准人类
- 数学特级教师:数学除了做习题,我还他让他们看这十部纪录片!
- 不只是舒适,简直是享受,Google公司用的腰靠,到底有什么秘密?
- 74款app源码,值得你拥有的干货
- android 版本28 通知栏图标,【专题分析】应用图标、通知栏适配
- selenium java 参数化_Java+selenium 自动化测试【03】-- 数据驱动之参数化
- jodconverter水印java,OpenOffice实现Office转Pdf(支持自定义添加水印、页眉、页脚)
- mongorepository查询条件_MongoRepository实现增删改查和复杂查询【支持的查询类型】...
- python while循环true_Python while循环,pause while not,true时继续?
- linux开发板推荐_【新品发布】WiFi开发板XW-01-Kit,超低功耗,冷启快联,智能门锁首选!...