给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。

例如:
给定二叉树 [3,9,20,null,null,15,7],

3
   / \
  9  20
    /  \
   15   7
返回锯齿形层次遍历如下:

[
  [3],
  [20,9],
  [15,7]
]

解法:

class Solution {
public:vector<vector<int>> zigzagLevelOrder(TreeNode* root) {if(!root) return {};vector<vector<int>> res;queue<TreeNode *> qu;qu.push(root);int n = 0;while(!qu.empty()){int count = qu.size();vector<int> curr;while(count--){TreeNode *s = qu.front();qu.pop();curr.push_back(s->val);if(s->left) qu.push(s->left);if(s->right) qu.push(s->right);}++n;if(n % 2 == 0)std::reverse(curr.begin(), curr.end());res.push_back(curr);}return res;}
};

103. 二叉树的锯齿形层次遍历相关推荐

  1. LeetCode 103. 二叉树的锯齿形层次遍历(Binary Tree Zigzag Level Order Traversal)

    103. 二叉树的锯齿形层次遍历 103. Binary Tree Zigzag Level Order Traversal 题目描述 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再 ...

  2. 103. 二叉树的锯齿形层次遍历/102. 二叉树的层序遍历

    2020-05-24 1.题目描述 二叉树的锯齿形层次遍历 2.题解 对于层次遍历而言,就是广度优先,由于题目要求奇数层逆序,我们可以 1)使用双端队列,奇偶性不同,则出入队列方式不同. 2)对于偶数 ...

  3. 【Leetcode】103. 二叉树的锯齿形层次遍历

    题目 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 ...

  4. 【LeetCode】103# 二叉树的锯齿形层次遍历

    题目描述 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], ...

  5. LeetCode 103. 二叉树的锯齿形层次遍历(BFS / 双栈)

    1. 题目 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7] ...

  6. leetcode 103. 二叉树的锯齿形层次遍历

    给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3/ \ ...

  7. 103.二叉树的锯齿形层次遍历:DFS解法

    Time: 20190830 题目描述 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,n ...

  8. Leetcode 103. 二叉树的锯齿形层次遍历 解题思路及C++实现

    解题思路: 因为是逐层的访问,在访问某一层的节点时,需要将其子节点push进栈,所以自然而然地想到用两个栈a和b.因为是锯齿形的访问顺序,所以,如果将根节点当做第一层,奇数层与偶数层的进栈区别在于:奇 ...

  9. LeetCode Algorithm 103. 二叉树的锯齿形层序遍历

    103. 二叉树的锯齿形层序遍历 Ideas 首先得理解二叉树的层序遍历,它类似于广度优先搜索,在当前层搜索的时候,遍历到的每一个节点都要把它的所有孩子节点都添加到队列中. 然后我们要锯齿形遍历,可以 ...

最新文章

  1. python类中self是什么
  2. Windows 软件推荐2020
  3. 谁的bug? 正则 拷贝和粘贴 regulator工具
  4. 读《人,绩效和职业道德》有感
  5. 同是iPad退差价却不同?
  6. BigNums 之 hdu 1753
  7. Visio是一个很好的UML建模软件和一个很好的制图软件
  8. 【概率论】5-9:多项式分布(The Multinomial Distributions)
  9. JS学习之Object
  10. 令你的网站获得任意Google PR值的方法!
  11. Implement AWS SQS and Lambda to decouple process flow
  12. 简述中断处理的6个步骤_完整的中断处理过程分为那几个阶段?
  13. can和could的用法_情态动词can和could用法详解
  14. 《Journal of Building Engineering》期刊介绍(SCI 3区)
  15. 数码相机(百度百科)
  16. 痞子衡嵌入式:串口调试工具Jays-PyCOM诞生记 - 索引
  17. 一文了解SAAS开发、模板定制开发、全定制开发
  18. Java如何实现文档在线预览+下载
  19. ASAS-CoMoSpA研究: 评价SpA不同分类标准的表现
  20. 如何选择一款趁手的光纤测试仪

热门文章

  1. 2014年9月21日_随笔,jdic,ETL,groovy,Nutz好多东西想学
  2. [原]Asp.net替换不同版本的Dll文件碰到的问题以及解决办法.
  3. PL/SQL Developer 使用技巧小结(转)
  4. php curl 采集文件,curl获取远程文件内容
  5. ft服务器设置传输协议,ft服务器设置成主动模式
  6. volta架构 微型计算机,性能大爆炸 NVIDIA新GPU架构曝光
  7. linux脚本编写规则,shell脚本编写守则
  8. php简单分页,php简单实现分页查询的方法
  9. python自带sqlite库_Python标准库之sqlite3使用实例
  10. jp在java中无法编译_JPanal上加图片的问题!