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

    文章

    4438

    浏览量

    90552
  • 二叉树
    +关注

    关注

    0

    文章

    74

    浏览量

    12210

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

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

收藏 人收藏

    评论

    相关推荐

    堆的实现思路

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

    树与二叉树的定义

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

    文件系统-多叉树与二叉树的转化

    在这一节中,我们来学习如何使用程序来实现一棵文件树。在上一节中,我们了解到使用文件树的方式来整合计算机中所有的资源,而这一棵文件树则是一棵多叉树。也就是说,树上的每一个节点都可能有多个子节点
    的头像 发表于 10-11 10:06 316次阅读
    文件系统-多叉树与<b class='flag-5'>二叉树</b>的转化

    平衡二叉树(3)#数据结构

    数据函数二叉树
    未来加油dz
    发布于 :2023年09月05日 09:45:06

    平衡二叉树(2)#数据结构

    数据函数二叉树
    未来加油dz
    发布于 :2023年09月05日 09:43:54

    平衡二叉树(1)#数据结构

    数据函数二叉树
    未来加油dz
    发布于 :2023年09月05日 09:42:30

    二叉树二叉树的性质(3)#数据结构

    数据函数二叉树
    未来加油dz
    发布于 :2023年09月05日 09:09:51

    二叉树二叉树的性质(2)#数据结构

    数据函数二叉树
    未来加油dz
    发布于 :2023年09月05日 09:08:32

    二叉树二叉树的性质(1)#数据结构

    数据函数二叉树
    未来加油dz
    发布于 :2023年09月05日 09:06:44

    二叉排序树(2)(2)#数据结构

    数据函数二叉树
    未来加油dz
    发布于 :2023年09月05日 09:04:56

    这么简单的二叉树算法都不会?

    这个题目是leetcode的第572题,要求是这样的:给定两颗二叉树A和B,判断B是否是A的子树。
    的头像 发表于 08-29 11:19 484次阅读
    这么简单的<b class='flag-5'>二叉树</b><b class='flag-5'>算法</b>都不会?

    常见的机器学习算法及其应用场景

    决策树是一个树结构(可以是二叉树或非二叉树),其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个输出类别。使用决策树进行决策的过程
    发表于 08-11 12:24 524次阅读
    常见的机器<b class='flag-5'>学习</b><b class='flag-5'>算法</b>及其应用场景

    排序算法之“归并算法”介绍

    ,分治思想一般就是使用递归来实现的。但是需要注意的是:递归是代码实现的方式,分治属于理论。接下来看一副图理解下: 说完它的思想:我们再来分析下时间复杂度。归并算法采用的是完全二叉树的形式。所以可以由完全二叉树
    的头像 发表于 05-22 10:03 397次阅读
    排序<b class='flag-5'>算法</b>之“归并<b class='flag-5'>算法</b>”介绍

    STL中的堆算法该如何使用呢?

    了解过数据结构的人,应该对堆结构不陌生,堆的底层是使用数组来实现的,但却保持了二叉树的特性。
    的头像 发表于 04-19 16:42 826次阅读

    机器学习算法学习之特征工程1

    特征工程是机器学习过程中的关键步骤,涉及将原始数据转换为机器学习算法可以有效使用的格式。在本篇博客文章中,我们介绍了各种特征工程技术,包括特征选择和提取、编码分类变量、缩放和归一化、创建新特征、处理不平衡数据、处理偏斜和峰度、处
    的头像 发表于 04-19 11:38 524次阅读
    机器<b class='flag-5'>学习</b><b class='flag-5'>算法学习</b>之特征工程1