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

    文章

    4800

    浏览量

    98515
  • 二叉树
    +关注

    关注

    0

    文章

    74

    浏览量

    12995

原文标题:面试官:让你打印一下二叉树,有必要这么麻烦吗?

文章出处:【微信号:TheAlgorithm,微信公众号:算法与数据结构】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    工作流插件节点节点说明

    插件节点用于在工作流调用插件运行指定工具。 插件是一系列工具的集合,每个工具都是一个可调用的API。插件广场上架的插件或已上架的团队插件支持以节点形式被集成到工作流,拓展智能体的能
    发表于 03-23 16:54

    嵌入式春招笔试高频算法题(附解题思路)

    (char *str),否则无法修改字符串内容(笔试常考错误点)。 四、高频算法题4:进制转换(嵌入式特色,必考) 嵌入式开发,经常涉及进制转换(十进制→进制/十六进制),是春招笔试的特色
    发表于 03-18 10:08

    工作流节点说明开始节点

    必填),和一个默认的输入参数EVENT_INPUT(非必填)。表示用户在本轮对话输入的原始内容。开发者也可以按需添加其他自定义输入参数。 开始节点配置说明如下: 输入参数说明 1、自定义参数:开始
    发表于 03-13 14:52

    deepin/UOS系统打印机配置指南

    无论是家庭使用还是办公环境,打印机都是我们日常工作和学习不可或缺的设备。在 deepin 或 UOS 系统打印机配置可以非常简单,大多
    的头像 发表于 01-28 14:19 899次阅读

    亿纬锂能与杭集团达成战略合作

    近日,亿纬锂能与杭集团2025年战略研讨会暨战略合作协议签约仪式在杭州举行。亿纬锂能副总裁、商用车电池产品线总裁江吉兵博士,亿纬锂能商用车电池产品线国内销售部总经理井振江,杭集团董事、副总经理兼
    的头像 发表于 01-04 18:18 1174次阅读

    C语言的常见算法

    = next; } return prev; } ``` ### 二叉树遍历 (前序) ```c struct TreeNode { int val; struct TreeNode
    发表于 11-24 08:29

    通过优化代码来提高MCU运行效率

    选择时间复杂度低的算法。 根据访问模式选择数据结构。频繁查找用哈希表,有序数据用二叉树等。 查表法:对于复杂的数学计算(如sin, log),或者协议解析,预先计算好结果存于数组,用空间换时间
    发表于 11-12 08:21

    e203除法器算法改进(

    的迭代进行可以表示为: r{i}=beta r{i-1}-q{i}D (其中r{i}表示第i次部分余数,r{i-1}表示第i-1次的部分余数,beta表示选择的基数在SRT-4算法为4,q{i
    发表于 10-22 06:11

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

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

    PID控制算法学习笔记资料

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

    FPGA在机器学习的具体应用

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

    亿纬锂能荣获杭集团2022-2024年度优秀供应商奖

    近日,亿纬锂能凭借卓越产品、可靠交付与优质服务荣获杭集团颁发的“2022-2024年度优秀供应商”奖。杭集团副总经理兼杭电器董事长金华曙、杭电器总经理兼杭博电机总经理李明辉出席
    的头像 发表于 07-15 09:00 1095次阅读

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

    电场力驱动墨滴喷射。打印时,高电压使墨滴在强电场下产生电动力学效应,从而精准控制墨滴位置和大小,实现高分辨率、高速度、低成本打印,适用于标签、包装、广告等领域。 图:ATA-7000系列高压放大器在EHD打印电子点胶技术
    的头像 发表于 06-25 15:48 804次阅读
    高压放大器在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 1354次阅读
    扫码枪直连<b class='flag-5'>打印</b>机扫产品上的条码<b class='flag-5'>二</b>维码,自动<b class='flag-5'>打印</b>对应的条码标签