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

    文章

    4622

    浏览量

    93053
  • 二叉树
    +关注

    关注

    0

    文章

    74

    浏览量

    12348

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

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

收藏 人收藏

    评论

    相关推荐

    NPU与机器学习算法的关系

    在人工智能领域,机器学习算法是实现智能系统的核心。随着数据量的激增和算法复杂度的提升,对计算资源的需求也在不断增长。NPU作为一种专门为深度学习等机器
    的头像 发表于 11-15 09:19 514次阅读

    华纳云:Chord算法如何管理节点间的联系?

    finger表查找最近的节点来实现。如果当前节点的finger表没有直接指向目标节点的条目,它会将请求转发给finger表中指向的
    发表于 11-08 16:03

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

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

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

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

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

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

    节点电压法流入节点电流怎么判断正负

    节点电压法(Node Voltage Method)是一种在电路分析中常用的方法,用于求解电路节点的电压。在这种方法,我们通常选择一个参考节点
    的头像 发表于 08-06 17:24 2427次阅读

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

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

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

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

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

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

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

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

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

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

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

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

    机器学习算法原理详解

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

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

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

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

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