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

    文章

    4587

    浏览量

    92478
  • 二叉树
    +关注

    关注

    0

    文章

    74

    浏览量

    12302

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

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

收藏 人收藏

    评论

    相关推荐

    一种基于深度学习维拉曼光谱算法

    近日,天津大学精密仪器与光电子工程学院的光子芯片实验室提出了一种基于深度学习维拉曼光谱算法,成果以“Rapid and accurate bacteria identification
    的头像 发表于 11-07 09:08 65次阅读
    一种基于深度<b class='flag-5'>学习</b>的<b class='flag-5'>二</b>维拉曼光谱<b class='flag-5'>算法</b>

    逻辑组件的流程块节点通常出于什么用途

    逻辑组件的流程块节点是流程图、状态图、序列图等图表的基本元素,它们用于表示业务流程、工作流程、算法步骤、系统状态等。这些节点在软件开发、
    的头像 发表于 10-15 14:38 105次阅读

    什么是默克尔树(Merkle Tree)?如何计算默克尔根?

    01 默克尔树的概念 默克尔树(Merkle Tree)是一种特殊的二叉树,它的每个节点都存储了一个数据块的哈希值。哈希值是一种可以将任意长度的数据转换为固定长度的字符串的算法,它具有唯一性和不可
    的头像 发表于 09-30 18:22 468次阅读
    什么是默克尔树(Merkle Tree)?如何计算默克尔根?

    深度学习算法在嵌入式平台上的部署

    随着人工智能技术的飞速发展,深度学习算法在各个领域的应用日益广泛。然而,将深度学习算法部署到资源受限的嵌入式平台上,仍然是一个具有挑战性的任务。本文将从嵌入式平台的特点、深度
    的头像 发表于 07-15 10:03 1083次阅读

    深度学习算法在集成电路测试的应用

    随着半导体技术的快速发展,集成电路(IC)的复杂性和集成度不断提高,对测试技术的要求也日益增加。深度学习算法作为一种强大的数据处理和模式识别工具,在集成电路测试领域展现出了巨大的应用潜力。本文将从深度学习
    的头像 发表于 07-15 09:48 705次阅读

    利用Matlab函数实现深度学习算法

    在Matlab实现深度学习算法是一个复杂但强大的过程,可以应用于各种领域,如图像识别、自然语言处理、时间序列预测等。这里,我将概述一个基本的流程,包括环境设置、数据准备、模型设计、训练过程、以及测试和评估,并提供一个基于Mat
    的头像 发表于 07-14 14:21 1779次阅读

    节点电压法电压源怎么处理

    节点电压法(Node Voltage Method,简称NVM)是电路分析的一种基本方法,主要应用于求解线性电路节点电压。在节点电压法
    的头像 发表于 07-12 09:20 2005次阅读

    深度学习的无监督学习方法综述

    应用往往难以实现。因此,无监督学习在深度学习扮演着越来越重要的角色。本文旨在综述深度学习
    的头像 发表于 07-09 10:50 375次阅读

    指电极上覆盖敏感材料的阻值计算

    覆盖的敏感材料厚度超出指厚度时计算电阻,是否可以视作指电极指间电阻多个周期串联后与超出指厚度部分敏感材料电阻并联
    发表于 07-05 14:48

    机器学习算法原理详解

    机器学习作为人工智能的一个重要分支,其目标是通过让计算机自动从数据中学习并改进其性能,而无需进行明确的编程。本文将深入解读几种常见的机器学习算法原理,包括线性回归、逻辑回归、支持向量机
    的头像 发表于 07-02 11:25 662次阅读

    机器学习的经典算法与应用

    关于数据机器学习就是喂入算法和数据,让算法从数据寻找一种相应的关系。Iris鸢尾花数据集是一个经典数据集,在统计学习和机器
    的头像 发表于 06-27 08:27 1538次阅读
    机器<b class='flag-5'>学习</b>的经典<b class='flag-5'>算法</b>与应用

    哈夫曼编码怎么算 哈夫曼编码左边是0还是1

    二叉树,将出现频率高的字符用较短的编码表示,而出现频率低的字符则用较长的编码表示。通过这种方式,可以实现对数据进行高效的编码和解码。 下面我们将详细介绍哈夫曼编码的算法过程。 统计字符频率 在进行哈夫曼编码前,首先需
    的头像 发表于 01-30 11:27 2391次阅读

    目前主流的深度学习算法模型和应用案例

    深度学习在科学计算获得了广泛的普及,其算法被广泛用于解决复杂问题的行业。所有深度学习算法都使用不同类型的神经网络来执行特定任务。
    的头像 发表于 01-03 10:28 1641次阅读
    目前主流的深度<b class='flag-5'>学习</b><b class='flag-5'>算法</b>模型和应用案例

    堆的实现思路

    什么是堆? 堆是一种 基于树结构的数据结构,它是一棵二叉树 ,具有以下两个特点: 堆是一个完全二叉树,即除了最后一层,其他层都是满的,最后一层从左到右填满。 堆每个节点都满足堆的特性
    的头像 发表于 11-24 16:02 376次阅读
    堆的实现思路

    树与二叉树的定义

    树型结构 是一类重要的 非线性数据结构 ,其中以树和二叉树最为常用,直观来看,树是以分支关系定义的层次结构。树型结构在客观世界中广泛存在,比如人类社会中的祖辈关系,社会机构组织等等都可以用树来形象
    的头像 发表于 11-24 15:57 1233次阅读
    树与<b class='flag-5'>二叉树</b>的定义