102. 二叉树的层序遍历

Ideas

二叉树的层序遍历类似于图的广度优先搜索,都是要借助队列这种数据结构来实现。

首先将根节点添加到队列中,然后就是套BFS的模板,稍微改动一下。

只要队列不为空就循环:

  1. 当前队列大小即为当前层元素个数;
  2. 遍历当前层元素,依次取出队首元素,添加到返回结果中;
  3. 将该元素的左右孩子节点添加到队列中

Code

Python

from typing import List
from collections import deque# Definition for a binary tree node.
class TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = rightclass Solution:def levelOrder(self, root: TreeNode) -> List[List[int]]:if not root:return []res = []queue = deque()queue.append(root)while queue:res.append([])level_size = len(queue)for _ in range(level_size):node = queue.popleft()res[-1].append(node.val)if node.left:queue.append(node.left)if node.right:queue.append(node.right)return res

LeetCode Algorithm 102. 二叉树的层序遍历相关推荐

  1. [Leetcode总结] 102.二叉树的层序遍历

    给你一个二叉树,请你返回其按 层序遍历 得到的节点值. 示例: 二叉树:[3,9,20,null,null,15,7], 3/ \9 20/ \15 7 返回其层序遍历结果: [[3],[9,20], ...

  2. leetcode系列-102.二叉树的层序遍历

    题目描述: 给你二叉树的根节点 root ,返回其节点值的 层序遍历 . (即逐层地,从左到右访问所有节点). 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:[ ...

  3. 【代码随想录】LC 102. 二叉树的层序遍历

    目录 一.题目 1.原题链接 2.题目描述 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.知识风暴 一.题目 1.原题链接 力扣 2.题目描述 给你二叉树的根节点 root ,返回其节 ...

  4. 【LeetCode】【HOT】102. 二叉树的层序遍历(队列)

    [LeetCode][HOT]102. 二叉树的层序遍历 文章目录 [LeetCode][HOT]102. 二叉树的层序遍历 package hot;import java.util.ArrayLis ...

  5. 102. 二叉树的层序遍历 golang

    102. 二叉树的层序遍历 给你一个二叉树,请你返回其按 层序遍历 得到的节点值. (即逐层地,从左到右访问所有节点). 示例: 二叉树:[3,9,20,null,null,15,7], 3/ \9 ...

  6. 代码随想录算法训练营第15天,102.二叉树的层序遍历、226.翻转二叉树、101.对称二叉树

    102.二叉树的层序遍历.226.反转二叉树.101.对称二叉树 102.二叉树的层序遍历 二叉树的层次遍历,我们可以定义一个队列, 当访问到某一个节点时,我们将它存在的左右节点放入队列中,便可达到按 ...

  7. 代码随想录算法训练营day15 | 102. 二叉树的层序遍历、226. 翻转二叉树、101. 对称二叉树

    102. 二叉树的层序遍历 class Solution { public:vector<vector<int>> levelOrder(TreeNode* root) {de ...

  8. 代码随想录算法训练营第十五天 | 102. 二叉树的层序遍历 | 226.翻转二叉树 | 101. 对称二叉树

    递归三部曲 确定递归函数的参数和返回值 确定终止条件 确定单层递归的逻辑 102. 二叉树的层序遍历 题解及想法 解法一 :递归法 class Solution {public List<Lis ...

  9. 代码随想录算法训练营第十三天|102.二叉树的层序遍历、226.翻转二叉树、101.对称二叉树

    链接:代码随想录 文章目录 102.二叉树的层序遍历 226.翻转二叉树 101.对称二叉树 解题方法 题目思路 示例代码 总结 解题思路 1.102.二叉树的层次遍历 解题思路 递归法,创立二维数组 ...

最新文章

  1. Linux动态频率调节系统CPUFreq之一:概述【转】-- 非常好的博客
  2. 【深度学习】Pytorch的深度神经网络剪枝应用
  3. (寒假开黑gym)2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017)
  4. mysql 高效分页查询_PostgreSQL、MySQL高效分页方法探讨
  5. Linux:客户端的实现
  6. 因特网使用期限_Internet死亡时使用PC的其他方式
  7. 非阻IO与EWOULDBLOCK EAGAIN
  8. Java基础入门笔记-算术运算符
  9. B站获得英雄联盟赛事直播三年独播版权
  10. esp8266教程:网络基础知识
  11. vue-video-player文档_vue使用video和vue-video-player并且可实现视频铺满呦
  12. 浅淡 Apache Kylin 与 ClickHouse 的对比
  13. 哈工大计算机学院学号,【复试机试内容回忆汇总帖】2019年哈尔滨工业大学计算机考研...
  14. oracle 结果集已耗尽_结果集已耗尽
  15. samba服务器介绍
  16. 函数式编程-Stream流
  17. 知音微服务平台网上订烟_新商盟网上订烟登录工具
  18. 阅读 | 蚂蚁金服:科技金融独角兽的崛起
  19. 智能家电项目Linux程序,基于ARM-Linux的无线智能家居系统
  20. 如何把图片上面的文字转换成word-OCR文字识别软件

热门文章

  1. redis的操作 json对象实例
  2. 使用反射处理protobuf数据结构
  3. Servlet笔记2-文件上传
  4. gVim 中文内容显示为乱码的解决办法
  5. 无法访问请求的页面,因为该页的数据的相关配置数据无效
  6. 构件开发常见问题和错误的解决方案和处理方法
  7. 【Vegas原创】终端服务器超出了最大允许连接数 解决方法
  8. Web技术电子期刊2008年第3期(总第23期)
  9. java中数值023是什么类型_【Java 教程(原创)】023.参数传值——引用类型参数的传值...
  10. 计算机英语 自我介绍,计算机面试英文自我介绍范例