大家好,我是吴师兄,直接开始今天的算法学习,冲冲冲。
一、题目描述
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
例如: 给定二叉树:[3,9,20,null,null,15,7],
3
/
920
/
157
返回:
[3,9,20,15,7]
二、保姆级参考代码
//登录AlgoMooc官网获取更多算法图解
//https://www.algomooc.com
//作者:程序员吴师兄
classSolution{
publicint[]levelOrder(TreeNoderoot){
//根节点为空的情况返回空数组
if(root==null)returnnewint[0];
//生成一个队列,用来保存节点
Queuequeue=newLinkedList<>();
//生成一个list,用来保存输出的节点
Listlist=newArrayList<>();
//首先让根节点入队
queue.add(root);
//遍历队列,直到队列为空
while(!queue.isEmpty()){
//获取队列的头部元素
TreeNodenode=queue.poll();
//把结点值存放到list中
list.add(node.val);
//判断该节点是否有左右子节点
//如果左子节点有值,则把左子节点加入到队列中
if(node.left!=null){
queue.add(node.left);
}
//如果右子节点有值,则把右子节点加入到队列中
if(node.right!=null){
queue.add(node.right);
}
}
//根据题目要求,把list转化为数组
int[]res=newint[list.size()];
for(inti=0;i< list.size(); i++) {
res[i] = list.get(i);
}
//返回res
returnres;
}
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
算法
+关注
关注
23文章
4760浏览量
97136 -
二叉树
+关注
关注
0文章
74浏览量
12862
原文标题:面试官:让你打印一下二叉树,有必要这么麻烦吗?
文章出处:【微信号:TheAlgorithm,微信公众号:算法与数据结构】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
C语言的常见算法
= next;
}
return prev;
}
```
### 二叉树遍历 (前序)
```c
struct TreeNode {
int val;
struct TreeNode
发表于 11-24 08:29
通过优化代码来提高MCU运行效率
选择时间复杂度低的算法。
根据访问模式选择数据结构。频繁查找用哈希表,有序数据用二叉树等。
查表法:对于复杂的数学计算(如sin, log),或者协议解析,预先计算好结果存于数组中,用空间换时间
发表于 11-12 08:21
FPGA在机器学习中的具体应用
,越来越多地被应用于机器学习任务中。本文将探讨 FPGA 在机器学习中的应用,特别是在加速神经网络推理、优化算法和提升处理效率方面的优势。
高压放大器在EHD电流体打印系统中的应用研究
电场力驱动墨滴喷射。打印时,高电压使墨滴在强电场下产生电动力学效应,从而精准控制墨滴位置和大小,实现高分辨率、高速度、低成本打印,适用于标签、包装、广告等领域。 图:ATA-7000系列高压放大器在EHD打印电子点胶技术
下一代高速芯片晶体管解制造问题解决了!
在半导体工艺演进到2nm,1nm甚至0.7nm等节点以后,晶体管结构该如何演进?2017年,imec推出了叉片晶体管(forksheet),作为环栅(GAA)晶体管的自然延伸。不过,产业对其可制造
发表于 06-20 10:40
扫码枪直连打印机扫产品上的条码二维码,自动打印对应的条码标签
在现代企业的生产、仓储、物流等环节中,条码标签的打印与使用是一项极为常见却又至关重要的工作。传统的依靠电脑连接条码打印机的打印方式,在面对大规模、高频次的
使用AD2428时,通过主节点发现从节点的过程中遇到的问题求解
在使用AD2428时,通过主节点发现从节点的过程中,遇到以下问题:
按照手册中将0x9寄存器配置成0x1,读回0x17寄存器的值为0x29,且主节点未发现从
发表于 04-15 07:14
永磁同步电机二阶迭代学习控制
针对永磁同步电机存在的周期性脉动问题,提出了一种二阶 PD-型迭代学习控制策略,该算法能够 有效实现最优跟踪控制 。利用卷积的推广 Young 不等式,获得了系统跟踪误差在 Lebesgue-p
发表于 03-26 14:28
华为云 Flexus X 实例部署安装 Jupyter Notebook,学习 AI,机器学习算法
前言 由于本人最近在学习一些机器算法,AI 算法的知识,需要搭建一个学习环境,所以就在最近购买的华为云 Flexus X 实例上安装了学习环
Jtti:节点ID变化过于频繁如何解决
与现有节点的ID重复。 采用动态ID分配策略 :设置一个ID管理节点,负责为新加入的节点分配唯一的ID,并在节点离开网络时回收并重新分配所占用的ID。 增强仲裁机制 :引入额外的仲裁规

算法学习中如何打印二叉树节点
评论