当前位置: 首页 > news >正文

网站 空间 租用电商培训机构

网站 空间 租用,电商培训机构,学校学院网站建设意义,在国内做敏感网站目录 题目描述:102. 二叉树的层序遍历(中等)题目接口解题思路代码 PS: 题目描述:102. 二叉树的层序遍历(中等) 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地&am…

目录

  • 题目描述:102. 二叉树的层序遍历(中等)
    • 题目接口
    • 解题思路
    • 代码
  • PS:

题目描述:102. 二叉树的层序遍历(中等)

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

LeetCode做题链接:LeetCode-二叉树的层序遍历

示例 1:
在这里插入图片描述

输入: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

题目接口

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<List<Integer>> levelOrder(TreeNode root) {}
}

解题思路

树的层序遍历可以用BFS,因为层序遍历要求的输入结果和BFS是不同的。层序遍历要求我们区分每一层,也就是返回一个二维数组。而BFS的遍历结果是一个一维数组,无法区分每一层。

思路如下:
1.创建一个空的结果列表res,这个列表用于存储每一层节点的值。
2.创建一个队列queue,并将根节点root加入队列。
3.当队列不为空时,执行以下操作:

  • 获取当前队列的长度,即当前层的节点个数。
  • 创建一个空的列表level,用于存储当前层的节点值。
  • 遍历当前层的所有节点,对于每个节点,执行以下操作:
    • 从队列中取出一个节点,并把它的值加入到列表level中。
    • 如果这个节点有左子节点,那么将左子节点加入到队列中;如果这个节点有右子节点,那么将右子节点加入到队列中。
  • 把列表level加入到结果列表res中。

4.最后返回结果列表res,这个列表中的每个元素都是一个列表,表示树的每一层的所有节点的值。

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<List<Integer>> levelOrder(TreeNode root) {// 创建一个二维列表,用于存储每一层的节点值List<List<Integer>> res = new ArrayList<>();// 创建一个队列,用于层序遍历Queue<TreeNode> queue = new ArrayDeque<>();// 如果根节点不为空,将其加入队列if (root != null) {queue.add(root);}// 当队列不为空时,进行循环while (!queue.isEmpty()) {// 获取当前层的节点个数int n = queue.size();// 创建一个列表,用于存储当前层的节点值List<Integer> level = new ArrayList<>();// 遍历当前层的每个节点for (int i = 0; i < n; i++) {// 取出队首节点TreeNode node = queue.poll();// 将节点值加入当前层的列表level.add(node.val);// 如果当前节点的左子节点不为空,将其加入队列if (node.left != null) {queue.add(node.left);}// 如果当前节点的右子节点不为空,将其加入队列if (node.right != null) {queue.add(node.right);}}// 将当前层的节点值列表加入结果列表res.add(level);}// 返回结果列表return res;}
}

成功!
在这里插入图片描述

PS:

感谢您的阅读!如果您觉得本篇文章对您有所帮助,请给予博主一个喔~

http://www.hkea.cn/news/633090/

相关文章:

  • 做IP授权的一般看什么网站一级消防工程师考试
  • 项目建设备案网站爱站网站长百度查询权重
  • 铜陵专业网站制作公司软文免费发布平台
  • 鹿泉市建设局网站短视频seo关键词
  • 手机网站开发标准网络营销服务工具
  • 施工企业分包工程会计与税务处理网站推广优化是什么意思
  • 网站建设开发的目的智能建站网站模板
  • 深圳市做网站的有那些公司沈阳百度推广哪家好
  • 用flash做网站教程个人发布信息免费推广平台
  • 网站主题页网站模板中心
  • 制作网页用什么进行页面布局seo优化方案案例
  • 国外经典平面设计网站做网站的费用
  • 学校营销型网站建设最新长尾关键词挖掘
  • 服务网络是什么意思上海关键词排名优化价格
  • 黑龙江做网站哪家好下载官方正版百度
  • 实时网站制作网站关键字优化
  • 商城网站要多少钱网页制作app
  • 做网站前端难吗个人网站
  • 怎么做亚马逊网站百度小说排行榜2020
  • 山东省建设文化传媒有限公司网站网站排名查询工具有哪些
  • 营销型企业网站有哪些网站建设找哪家好
  • 玉环做企业网站任何东西都能搜出来的软件
  • 无锡专业网站建设搜索优化seo
  • 成品软件源码网站大全百度权重10的网站
  • 深圳手机网站建设多少钱外链代发软件
  • 璧山集团网站建设互联网推广营销
  • 平面设计网址推荐全国seo搜索排名优化公司
  • 青岛公路建设集团网站东莞排名优化团队
  • 北京公司响应式网站建设价位太原网站建设开发
  • 龙岩网络诈骗通缉人员优化推广方案