前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >打卡群2刷题总结1010——二叉树的层序遍历

打卡群2刷题总结1010——二叉树的层序遍历

作者头像
木又AI帮
发布2020-10-30 09:43:46
3040
发布2020-10-30 09:43:46
举报
文章被收录于专栏:木又AI帮木又AI帮

leetcode第102题:二叉树的层序遍历

https://leetcode-cn.com/problems/binary-tree-level-order-traversal/


【题目】

给你一个二叉树,请你返回其按 层序遍历 得到的节点值。(即逐层地,从左到右访问所有节点)。

代码语言:javascript
复制
示例:
二叉树:[3,9,20,null,null,15,7],
	3
   / \
  9  20
    /  \
   15   7
返回其层次遍历结果:

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

【思路】

使用队列,只要队列不为空,则遍历队列元素,并将孩子节点加入新队列中,遍历结束后,将新队列复制给原始的队列。

【代码】

python版本

代码语言:javascript
复制
# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def levelOrder(self, root):
        """
        :type root: TreeNode
        :rtype: List[List[int]]
        """
        queue = [root]
        res = []
        # 只要不为空,就得继续遍历
        while len(queue) > 0:
            tmp = []
            res_tmp = []
            # 遍历所有元素
            while len(queue) > 0:
                node = queue.pop(0)
                if not node:
                    continue
                res_tmp.append(node.val)
                tmp.append(node.left)
                tmp.append(node.right)

            if len(res_tmp) > 0:
                queue = tmp
                res.append(res_tmp)
        return res

【相似题目】

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

解题思路:层次遍历,对偶数层的结果逆序。

107. 二叉树的层次遍历 II

解题思路:层次遍历+结果逆序。

429. N叉树的层序遍历

解题思路:层次遍历。

637. 二叉树的层平均值

解题思路:层次遍历+对每一层的所有元素取平均值。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 木又AI帮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档