牛客题霸 [二叉树的之字形层序遍历] 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++题解/答案相关推荐

  1. 牛客题霸 [两个链表生成相加链表] C++题解/答案

    牛客题霸 [两个链表生成相加链表] C++题解/答案 题目描述 假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数. 给定两个这种链表,请生成代表两个整数相加值的结果链表. ...

  2. 牛客题霸 [二进制中1的个数] C++题解/答案

    牛客题霸 [二进制中1的个数] C++题解/答案 题目描述 输入一个整数,输出该数32位二进制表示中1的个数.其中负数用补码表示. 题解: 判断1的个数 x&(-x)=2^k 有点类似于树状数 ...

  3. 牛客题霸 [合并两个有序的数组] C++题解/答案

    牛客题霸 [合并两个有序的数组] C++题解/答案 题目描述 给出两个有序的整数数组 和 ,请将数组 合并到数组 中,变成一个有序的数组 注意: 可以假设 数组有足够的空间存放 数组的元素, 和 中初 ...

  4. 牛客题霸 [连续子数组的最大和] C++题解/答案

    牛客题霸 [连续子数组的最大和] C++题解/答案 题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和 ...

  5. 牛客题霸 判断链表中是否有环 C++题解/答案

    牛客题霸 判断链表中是否有环 C++题解/答案 题目描述 判断给定的链表中是否有环 扩展: 你能给出空间复杂度的解法么? 题解: 在这介绍一个简便的方法:快慢指针 就是:一个指针走两步,一个指针走一步 ...

  6. 牛客题霸 [用两个栈实现队列] C++题解/答案

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 题解: 我们都知道栈的性质是先进后出,队列是先进先出 我们用两个栈来模拟出队列 可以先用一个栈来存数,当 ...

  7. 牛客题霸 [判断一个链表是否为回文结构] C++题解/答案

    判断一个链表是否为回文结构 题目描述 给定一个链表,请判断该链表是否为回文结构. 题解: 直接将链表内的数据存入string中,然后从两端开始向中间判断即可 代码: /*** struct ListN ...

  8. 牛客题霸 [二叉树的镜像]C++题解/答案

    牛客题霸 [二叉树的镜像]C++题解/答案 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 题解: 根据题也不难看出,二叉树的镜像定义其实就是左右树翻转 所以我们一直递归左子树,到头后递归右子 ...

  9. 牛客题霸 [二叉树中是否存在节点和为指定值的路径] C++题解/答案

    牛客题霸 [二叉树中是否存在节点和为指定值的路径] C++题解/答案 题目描述 给定一个二叉树和一个值\ sum sum,判断是否有从根节点到叶子节点的节点值之和等于\ sum sum 的路径, 例如 ...

最新文章

  1. BAPI_GOODSMVT_CREATE的几个应用
  2. 操作系统(十四)进程调度的时机、调度方式
  3. 丢了好几年的 Auto CAD又拿起来......
  4. JavaScript中的地图与对象
  5. MySQL 复制滞后怎么办?
  6. phpstorm docker php,使用phpstorm对docker中的脚本进行debug的方法
  7. ISA2006之SP1的作用
  8. CloudStack之nfs
  9. JavaScript用法(1)
  10. 拓端tecdat|关联规则APRIORI挖掘豆瓣读书评论爬虫采集数据与可视化
  11. 【图像去噪】基于matlab GUI空域+频域滤波图像去噪【含Matlab源码 914期】
  12. cisco产品命名规则
  13. 高频分类ISO1443, ISO15693, ISO18000-3
  14. VB.NET2010 编程实现Word双面打印
  15. 数据库的基本语句(mysql举例)
  16. 颜色对照表(四)(16进制、RGB、CMYK、HSV、中英文名)
  17. 东方联盟郭盛华:坚定站在移动安全的最前沿
  18. Busting Frame Busting: a Study of Clickjacking Vulnerabilities on Popular Sites
  19. 基于JAVA的葫芦娃救爷爷游戏
  20. vivo 5G旗舰机真的要来了?新商标好抢眼!

热门文章

  1. 百般受虐!“波士屯动力”机器人这一次枪口对准人类
  2. 数学特级教师:数学除了做习题,我还他让他们看这十部纪录片!
  3. 不只是舒适,简直是享受,Google公司用的腰靠,到底有什么秘密?
  4. 74款app源码,值得你拥有的干货
  5. android 版本28 通知栏图标,【专题分析】应用图标、通知栏适配
  6. selenium java 参数化_Java+selenium 自动化测试【03】-- 数据驱动之参数化
  7. jodconverter水印java,OpenOffice实现Office转Pdf(支持自定义添加水印、页眉、页脚)
  8. mongorepository查询条件_MongoRepository实现增删改查和复杂查询【支持的查询类型】...
  9. python while循环true_Python while循环,pause while not,true时继续?
  10. linux开发板推荐_【新品发布】WiFi开发板XW-01-Kit,超低功耗,冷启快联,智能门锁首选!...