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

Day53 二叉树的层序遍历

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

在这里插入图片描述

/*** 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>> result = new ArrayList<>();if (root == null) return result;Queue<TreeNode> queue = new LinkedList<>();queue.offer(root);while (!queue.isEmpty()) {int levelSize = queue.size();List<Integer> currentLevel = new ArrayList<>();for (int i = 0; i < levelSize; i++) {TreeNode node = queue.poll();currentLevel.add(node.val);if (node.left != null) queue.offer(node.left);if (node.right != null) queue.offer(node.right);}result.add(currentLevel);}return result;}
}

时间复杂度​​:O(n)
​​空间复杂度​​:O(n)(最坏情况下队列存储所有叶子节点)

public List<List<Integer>> levelOrder(TreeNode root) {List<List<Integer>> result = new ArrayList<>();traverse(root, 0, result);return result;
}private void traverse(TreeNode node, int level, List<List<Integer>> result) {if (node == null) return;if (result.size() == level) {result.add(new ArrayList<>());}result.get(level).add(node.val);traverse(node.left, level + 1, result);traverse(node.right, level + 1, result);
}

时间复杂度​​:O(n)
​​空间复杂度​​:O(h)(递归栈空间,h为树高)

相关文章:

  • 【深度学习】【目标检测】【Ultralytics-YOLO系列】YOLOV3核心文件yolo.py解读
  • GN ninja 工程化构建例程
  • yarn的三大组件及各自的作用
  • 进阶篇|CAN FD 与性能优化
  • uboot下读取ubifs分区的方法
  • leetcode刷题日记——单词规律
  • webgl入门实例-11模型矩阵 (Model Matrix)基本概念
  • Unity粒子特效打包后不显示
  • FP16、FP32 及全系列浮点格式全解析:从半精度到四倍精度
  • IDEA 2025.1更新-AI助手试用和第三方模型集成方案
  • 2025年GitHub平台上的十大开源MCP服务器汇总分析
  • 【AI飞】AutoIT入门七(实战):python操控autoit解决csf视频批量转换(有点难,AI都不会)
  • 如何下载适用于Docker环境的Google Chrome浏览器【镜像使用方法】
  • RT-Thread RTThread studio 初使用
  • osgb和obj格式互转
  • 计算机视觉---相机标定
  • Oracle之数据库对象加连表查询
  • 前端 实现文字打字效果(仿AI)
  • 三维点拟合直线ransac c++
  • C/C++中获取或处理时间节点方法
  • 三大上市猪企:前瞻应对饲料原材料价格波动
  • 海南机场拟超23亿元收购美兰空港控股权,进一步聚焦机场主业
  • 中国人保不再设监事会,国寿集团未再设置监事长职务
  • 北京发布今年第四轮拟供商品住宅用地清单,共计5宗22公顷
  • 王毅出席金砖国家外长会晤
  • 华侨城A:一季度营收53.63亿元,净利润亏损14.19亿元