0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

算法与数据结构 来源:五分钟学算法 作者:程序员吴师兄 2021-10-22 09:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

大家好,我是吴师兄,直接开始今天的算法学习,冲冲冲。

一、题目描述

从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。

例如: 给定二叉树:[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;
}
}
责任编辑:haq
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    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

    请问rtt studio 的文件夹打红什么意思?

    rtt studio 的文件夹打红什么意思?而且文件夹里面实际是有文件的,但是浏览不出来。
    发表于 09-18 06:34

    PID控制算法学习笔记资料

    用于新手学习PID控制算法
    发表于 08-12 16:22 7次下载

    FPGA在机器学习的具体应用

    ,越来越多地被应用于机器学习任务。本文将探讨 FPGA 在机器学习的应用,特别是在加速神经网络推理、优化算法和提升处理效率方面的优势。
    的头像 发表于 07-16 15:34 2631次阅读

    高压放大器在EHD电流体打印系统的应用研究

    电场力驱动墨滴喷射。打印时,高电压使墨滴在强电场下产生电动力学效应,从而精准控制墨滴位置和大小,实现高分辨率、高速度、低成本打印,适用于标签、包装、广告等领域。 图:ATA-7000系列高压放大器在EHD打印电子点胶技术
    的头像 发表于 06-25 15:48 497次阅读
    高压放大器在EHD电流体<b class='flag-5'>打印</b>系统<b class='flag-5'>中</b>的应用研究

    下一代高速芯片晶体管解制造问题解决了!

    在半导体工艺演进到2nm,1nm甚至0.7nm等节点以后,晶体管结构该如何演进?2017年,imec推出了片晶体管(forksheet),作为环栅(GAA)晶体管的自然延伸。不过,产业对其可制造
    发表于 06-20 10:40

    扫码枪直连打印机扫产品上的条码维码,自动打印对应的条码标签

    在现代企业的生产、仓储、物流等环节,条码标签的打印与使用是一项极为常见却又至关重要的工作。传统的依靠电脑连接条码打印机的打印方式,在面对大规模、高频次的
    的头像 发表于 06-04 14:08 751次阅读
    扫码枪直连<b class='flag-5'>打印</b>机扫产品上的条码<b class='flag-5'>二</b>维码,自动<b class='flag-5'>打印</b>对应的条码标签

    使用AD2428时,通过主节点发现从节点的过程遇到的问题求解

    在使用AD2428时,通过主节点发现从节点的过程,遇到以下问题: 按照手册中将0x9寄存器配置成0x1,读回0x17寄存器的值为0x29,且主节点未发现从
    发表于 04-15 07:14

    如何在热敏打印实现图片的灰阶打印效果吗?

    谁知道如何在热敏打印实现图片的灰阶打印效果。 现在基本上文字打印,图片打印功能都已开发结束,图片打印
    发表于 04-03 08:40

    永磁同步电机阶迭代学习控制

    针对永磁同步电机存在的周期性脉动问题,提出了一种阶 PD-型迭代学习控制策略,该算法能够 有效实现最优跟踪控制 。利用卷积的推广 Young 不等式,获得了系统跟踪误差在 Lebesgue-p
    发表于 03-26 14:28

    高电压放大器在EHD电流体动力喷墨打印系统的应用

    随着科技的飞速发展,喷墨打印技术已经成为现代生产生活不可或缺的一部分。特别是EHD电流体动力喷墨打印系统,以其独特的打印方式,在印刷行业
    的头像 发表于 02-21 11:41 756次阅读
    高电压放大器在EHD电流体动力喷墨<b class='flag-5'>打印</b>系统<b class='flag-5'>中</b>的应用

    3D打印XPR技术对于打印效果的影响?

    我是3D打印设备的制造商,我想具体了解下3D打印XPR技术对于打印效果的影响? 或者是否能提供对应的专利信息以备查阅
    发表于 02-18 07:59

    华为云 Flexus X 实例部署安装 Jupyter Notebook,学习 AI,机器学习算法

    前言 由于本人最近在学习一些机器算法,AI 算法的知识,需要搭建一个学习环境,所以就在最近购买的华为云 Flexus X 实例上安装了学习
    的头像 发表于 01-02 13:43 860次阅读
    华为云 Flexus X 实例部署安装 Jupyter Notebook,<b class='flag-5'>学习</b> AI,机器<b class='flag-5'>学习</b><b class='flag-5'>算法</b>

    Jtti:节点ID变化过于频繁如何解决

    与现有节点的ID重复。 采用动态ID分配策略 :设置一个ID管理节点,负责为新加入的节点分配唯一的ID,并在节点离开网络时回收并重新分配所占用的ID。 增强仲裁机制 :引入额外的仲裁规
    的头像 发表于 12-12 15:44 736次阅读