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

二叉树的层序遍历-leetcode

题目描述

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

示例 1:

img

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

解法一

思路:

深度优先搜索+递归

添加辅助参数depth表示当前层的深度,深度搜索过程中逐渐增加根据当前的深度值将节点值加入到对应的列表中。

代码:

/*** 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 {private List<List<Integer>> levelOrders=new ArrayList<>();public void dfs(TreeNode root,int depth) {if(root == null) return ;if(levelOrders.size()<depth+1) levelOrders.add(new ArrayList<>());levelOrders.get(depth).add(root.val);dfs(root.left,depth+1);dfs(root.right,depth+1);}public List<List<Integer>> levelOrder(TreeNode root) {levelOrders.clear();if(root == null) return levelOrders;dfs(root,0);return levelOrders;}
}

解法二

思路:

广度搜索+队列

  • 根节点入队后再添上分界符
  • 根节点出队,将左右子节点加入队列
  • 分界符出队,表明当前一层搜索完毕,剩余节点是下一层,因此添上分界符
  • 依次下去
http://www.jsqmd.com/news/446767/

相关文章:

  • B2B制造企业如何选择AI出海服务商?2026年主流平台能力与用户反馈解析 - 品牌2026
  • 制造业B2B企业出海营销如何提效?2026年AI智能体服务商能力全景解析 - 品牌2026
  • Whats respect
  • [Redis从零到精通|第四篇]:缓存穿透、雪崩、击穿 - 指南
  • 软件测试经典面试题,助你面试加分
  • Whats respect。
  • 空性西传——用却无视
  • 有意思的开源软件
  • 原生Java NIO的核心“坑”与Netty的解决方案(深度解析)
  • pngjs
  • 立直麻将赛事记分系统介绍与优化改进
  • delphi的TReeView支持鼠标拖动节点
  • 微信小程序怎么制作自己的程序 - 码云数智
  • 这两天,腾讯云搞了一个“龙虾安装站”活动
  • 解决一个LANG引起beeline导出中文乱码的问题
  • c#开发Fastreport-Avalonia版本在ubuntu-linux下的打印程序
  • 2026冲压件厂家评测:国内做得好的实力厂家推荐,冲压件直销厂家选哪家宏罡通用设备层层把关品质优 - 品牌推荐师
  • 小程序快速开发平台有哪些?小程序第三方开发平台评测 - 码云数智
  • 国内优质TWSNS气源处理器源头厂家——广州邢海机电有限公司方案推荐,,TWSNS气源处理器直销厂家怎么选择 - 品牌推荐师
  • 从“救火队“到“预言家“:2026安全运营中心的智能进化论
  • 如何开发微信小程序,怎么自己做小程序 - 码云数智
  • 2026年北京海淀/朝阳/昌平房产继承律师榜单测评:从经验到口碑的选型指南 - 小白条111
  • 《构建之法》的阅读和提问
  • openclaw 问题定位和修复
  • 网站建设多少钱?主流建站方式及费用详解 - 码云数智
  • Omnissa Horizon 8 2512.1 (8.17.1) 发布 - 虚拟桌面基础架构 (VDI) 和应用软件
  • 制作微信商城小程序要多少费用 - 码云数智
  • window从Microsoft 账户切换到本地帐号之后清理microsoft账号的步骤
  • 深入解析:粉末压机领域的实力源头厂家,伺服油压机/平板油压机/电子压床/伺服压装机/伺服热压机,粉末压机厂商排行 - 品牌推荐师
  • Omnissa Unified Access Gateway 2512.1 - 远程安全的应用程序访问