按层次遍历,记录下对应节点的val和所在层,然后经过一定变换得到输出。python代码如下:

# Definition for a binary tree node.# class TreeNode(object):#     def __init__(self, x):#         self.val = x#         self.left = None#         self.right = Noneclass Solution(object):    def zigzagLevelOrder(self, root):        """        :type root: TreeNode        :rtype: List[List[int]]        """        tmp = []        if root == None:            return tmp        tmp.append(root)        tmp_list = []        cengshu = 0        while(tmp != []):            tmp_next = []            for i in range(len(tmp)):                tmp_list.append([tmp[i].val , cengshu])                if tmp[i].left != None:                    tmp_next.append(tmp[i].left)                if tmp[i].right != None:                    tmp_next.append(tmp[i].right)            tmp = tmp_next            cengshu += 1        from collections import defaultdict        dict_new = defaultdict(list)        for i in range(len(tmp_list)):            dict_new[tmp_list[i][1]].append(tmp_list[i][0])        final_return = []        for i in range(len(dict_new.values())):            if i % 2 == 0:                final_return.append(dict_new.values()[i])            else:                t = dict_new.values()[i]                t.reverse()                final_return.append(t)        return final_return

c++二叉树的层序遍历_leetcode 103. 二叉树的锯齿形层序遍历相关推荐

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

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

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

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

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

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

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

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

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

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

  6. BFS(二)二叉树层序遍历(I、II)、二叉树锯齿形层序遍历、N叉树层序遍历

    目录 102. 二叉树的层序遍历 107. 二叉树的层序遍历 II 103. 二叉树的锯齿形层序遍历 429. N 叉树的层序遍历 102. 二叉树的层序遍历 给你二叉树的根节点 root ,返回其节 ...

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

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

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

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

  9. 【数据结构与算法】之深入解析“二叉树的锯齿形层序遍历”的求解思路与算法示例

    一.题目要求 给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 示例 1: 输入:root = [3,9,20 ...

最新文章

  1. [原创]K8域控植入脚本生成器(内网渗透/RPC不可用解决方案)
  2. 特斯拉「断网」致500名车主被锁车外,最长5小时,网友:有些东西就不该经过网络...
  3. golang runtime.systemstack 泄漏排查
  4. 解决非浏览器客户端请求nginx无法命中缓存的问题
  5. DL之模型调参:深度学习算法模型优化参数之对深度学习模型的超参数采用网格搜索进行模型调优(建议收藏)
  6. 解决del找不到关键词‘province‘的问题和思想
  7. Django(part2)--创建项目与Django目录结构
  8. 疑问:关于Microsoft Office InfoPath 2003 Toolkit for Visual Studio 2005 Beta 2
  9. Linq 中的Aggregate一些用法
  10. spring事务管理的一些注意点
  11. php广告屏如何同步,户外LED大屏广告如何投放才能更吸引人?
  12. win10没有声音(扬声器一直显示未插入)
  13. 熵值法、灰色关联分析与层次分析法
  14. 当前的安全设置不允许从该位置下载文件。 的解决办法
  15. ANSYS ICEM CFD三维非结构网络生成实例——教室全新风送风与排风
  16. 学术界AV1编码优化技术的进展
  17. 人工智能开源项目推荐
  18. 【文献阅读】Silhouette based View embeddings for Gait Recognit
  19. 完全数计算(Java语言)
  20. [object Object]

热门文章

  1. assoc_Ruby assoc()函数
  2. camelcase_在Python中将字符串转换为camelCase
  3. vector cbegin_vector :: cbegin()函数以及C ++ STL中的示例
  4. observable_Java Observable deleteObserver()方法与示例
  5. 几款浏览器JavaScript调试工具
  6. Python设置网卡自己封装的Internet类 WMI
  7. 【STM32】修改芯片型号后报 Error 的解决方案
  8. 微信开发2之php网页授权登录
  9. mysql有没有实现高可用_MySQL高可用架构:mysql+keepalived实现
  10. 配置phoenix连接hbase_使用 Phoenix-4.11.0连接 Hbase 集群 ,并使用 JDBC 查询测试