给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:
给定二叉树 [3,9,20,null,null,15,7],3/ \9  20/  \15   7
返回锯齿形层序遍历如下:[[3],[20,9],[15,7]
]链接:https://leetcode-cn.com/problems/binary-tree-zigzag-level-order-traversalclass Solution:def zigzagLevelOrder(self, root: TreeNode) -> List[List[int]]:# if not root:return []# cur_level,res = [root], []# depth = 0# while cur_level:#     next_level = []#     tmp = []#     for node in cur_level:#         tmp.append(node.val)#         if node.left:#             next_level.append(node.left)#         if node.right:#             next_level.append(node.right)#     if depth % 2 == 1:#         res.append(tmp[::-1])#     else:#         res.append(tmp)#     depth += 1#     cur_level = next_level# return resres = []def helper(root, depth):if not root:return if len(res) == depth:res.append([])if depth % 2 == 0:res[depth].append(root.val)else:res[depth].insert(0, root.val)helper(root.left, depth + 1)helper(root.right, depth + 1)helper(root,0)return res

Leetcode 103. 二叉树的锯齿形层序遍历 (每日一题 20210924)相关推荐

  1. Leetcode 103.二叉树的锯齿形层序遍历

    难度:中等 频率:136 题目: 给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 解题方法:改进的BPS[广度优先搜索] BP ...

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

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

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

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

  4. 力扣题目——103. 二叉树的锯齿形层序遍历

    注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行 ...

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

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

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

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

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

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

  8. c++二叉树的层序遍历_leetcode 103. 二叉树的锯齿形层序遍历

    按层次遍历,记录下对应节点的val和所在层,然后经过一定变换得到输出.python代码如下: # Definition for a binary tree node.# class TreeNode( ...

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

    Leetcode:103. 二叉树的锯齿形层序遍历 - 力扣(LeetCode) (leetcode-cn.com) 还是层序遍历的问题,只不过这里需要注意层数,从而选择是正序访问还是倒序访问. 时间 ...

最新文章

  1. pycharm 无法更新代码 update project 无效
  2. Can you raed it croretcly?
  3. 设计模式(1)--简单工厂模式、策略模式
  4. DataTable转成List集合
  5. eclipse myeclipse 快捷键
  6. Python flask 开发工具和框架安装
  7. 手动配置ubuntu无线网络
  8. python golang 小工具_使用Go语言简单模拟Python的生成器
  9. 为什么说微服务一定要有 API 网关?
  10. 125 Valid Palindrome
  11. 有人说男人赚钱都是为了女人,这话说的有道理吗?
  12. 【计算机网络】局域网原理与技术(局域网概述、以太网技术、高速以太网、虚拟局域网、无线局域网)
  13. 51CTO网站博客改版意见寻求
  14. 利用计算机提出算法分析问题,应用计算机计算不可积类型的积分算法分析
  15. Flex4_操作XML
  16. 计算机网络—3网络层(路由选择协议、路由表的生成)
  17. 哪些思维方式是你刻意训练过的?
  18. Android中文字加下划线的方法
  19. EXCEL基本功能 --- 数据透视表
  20. 以太坊的区块和存储(一):区块头

热门文章

  1. 实现键盘录入的第二种方式。。。。。
  2. 《C++入门经典(第6版)》——1.3 创建您的第一个程序
  3. MySQL-MongoDB开源监控利器之PMM
  4. 论文笔记之:Instance-aware Semantic Segmentation via Multi-task Network Cascades
  5. YII用户注冊和用户登录(五)之进行session和cookie分析 ,并在前后区分session和cookie...
  6. 强制修改mysql 中root的密码
  7. python html parse
  8. c++学习总结:extern声明全局变量
  9. 算法提高课-图论-负环-AcWing 1165. 单词环:spfa判正环、二分、01分数规划
  10. 加速度随机游走_IMU Noise Model