LeetCode41 - 二叉树的层序遍历
📝 题目描述
题目链接:二叉树的层序遍历
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。(即逐层地,从左到右访问所有节点)。
示例:
示例 1:
1 | 输入:root = [3,9,20,null,null,15,7] |
示例 2:
1 | 输入:root = [1] |
示例 3:
1 | 输入:root = [] |
提示:
树中节点数目在范围 [0, 2000] 内-1000 <= Node.val <= 1000
💡 解题思路
方法一:广度优先搜索
这个题比较简单,我们只需要构造一个队列即可。
首先放入根节点(非空),然后只要队列不为空,我们就持续遍历。
- 首先获取队列中当前节点的数量,也就是本层的节点数量;
- 然后进入二层循环,遍历当前节点,存储节点值,并将每个本层节点的非空子节点入队。
当队列为空时,循环结束。
🔧 代码实现
1、广度优先搜索
1 | /** |
📊 复杂度分析
1、广度优先搜索
- 时间复杂度:,每个点进队出队各一次。
- 空间复杂度:,队列中元素的个数不会超过 个。
🎯 总结
- 核心思想:记住层序遍历的思路,便于其他题目做变体。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 很多时候不懂事!