LeetCode 102. 二叉树的层序遍历BFS

简介: LeetCode 102. 二叉树的层序遍历BFS

 LeetCode 102. 二叉树的层序遍历BFS

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

示例 1:

image.gif 编辑

输入:root = [3,9,20,null,null,15,7]

输出:[[3],[9,20],[15,7]]


示例 2:

输入:root = [1]

输出:[[1]]


示例 3:

输入:root = []

输出:[]


提示:

    • 树中节点数目在范围 [0, 2000]
    • -1000 <= Node.val <= 1000


    思路:利用队列 queue 先进先出的特性,按层次逐层遍历


    时间复杂度:O(N)

    空间复杂度:O(N)

    /*** Definition for a binary tree node.* type TreeNode struct {*     Val int*     Left *TreeNode*     Right *TreeNode* }*/funclevelOrder(root*TreeNode) [][]int {
    res :=make([][]int, 0)
    queue :=make([]*TreeNode, 0)
    ifroot!=nil {
    queue=append(queue, root) // 首先,根节点入队    }
    forlen(queue) >0 {
    subRes :=make([]int, 0)
    length :=len(queue)    // 提前缓存上一轮queue大小,避免在内循环中append导致queue长度变化fori :=0; i<length; i++ {
    root :=queue[0]
    subRes=append(subRes, root.Val)
    queue=queue[1:]   // popifroot.Left!=nil {
    queue=append(queue, root.Left)
                }
    ifroot.Right!=nil {
    queue=append(queue, root.Right)
                }
            }
    res=append(res, subRes)
        }
    returnres}

    image.gif


    目录
    相关文章
    |
    3月前
    【LeetCode 31】104.二叉树的最大深度
    【LeetCode 31】104.二叉树的最大深度
    28 2
    |
    3月前
    【LeetCode 29】226.反转二叉树
    【LeetCode 29】226.反转二叉树
    25 2
    |
    3月前
    【LeetCode 43】236.二叉树的最近公共祖先
    【LeetCode 43】236.二叉树的最近公共祖先
    23 0
    |
    3月前
    【LeetCode 38】617.合并二叉树
    【LeetCode 38】617.合并二叉树
    20 0
    |
    3月前
    【LeetCode 37】106.从中序与后序遍历构造二叉树
    【LeetCode 37】106.从中序与后序遍历构造二叉树
    26 0
    |
    3月前
    【LeetCode 34】257.二叉树的所有路径
    【LeetCode 34】257.二叉树的所有路径
    24 0
    |
    3月前
    【LeetCode 32】111.二叉树的最小深度
    【LeetCode 32】111.二叉树的最小深度
    19 0
    |
    4月前
    |
    Unix Shell Linux
    LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
    本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
    LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
    |
    5月前
    |
    Python
    【Leetcode刷题Python】剑指 Offer 32 - III. 从上到下打印二叉树 III
    本文介绍了两种Python实现方法,用于按照之字形顺序打印二叉树的层次遍历结果,实现了在奇数层正序、偶数层反序打印节点的功能。
    64 6
    |
    5月前
    |
    搜索推荐 索引 Python
    【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
    本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
    130 2