二叉树的层次遍历

二叉树的层次遍历

基本思想

  • 借助队列来实现
  • 首先初始化队列.然后将根结点压入队列
  • 然后出队,输出出队元素的值,
  • 如果存在左孩子.则左孩子入队
  • 如果存在右孩子,则右孩子入队, 循环直到判断条件不成立

如果需要将节点从下到上 从左到右输出的话.只需要设置一个辅助栈 然后将数据压入栈中 最后出栈即可

(下面是从下到上,从左到右的输出)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏积累沉淀

JavaScript匿名函数与闭包

匿名函数就是没有名字的函数,闭包是可访问一个函数作用域里变量的函数。 一.匿名函数 //普通函数 function box() {//函数名是box retur...

1775
来自专栏mukekeheart的iOS之旅

final、finally、finalize的区别

final:修饰符,可以用于修饰成员、方法和类。 如果一个类被声明为final,意味着该类不能再派生出新的子类,不能作为父类被继承。因此一个类不能即被声明为ab...

1765
来自专栏WindCoder

Java漫谈-数组

在Java语言中,数组是对象(An object is a class instance or an array.),而且是动态创建的。

531
来自专栏CDA数据分析师

12道 Python面试题总结

1、Python是如何进行内存管理的? Python的内存管理主要有三种机制:引用计数机制、垃圾回收机制和内存池机制。 a. 引用计数 当给一个对象分配一个新名...

2199
来自专栏文武兼修ing——机器学习与IC设计

基本2D优先堆基本优先队列二叉堆实现优先队列代码实现

基本优先队列 考虑一种队列:每次取出的数据是队列中最小的元素。这种队列可用于程序调度,作业分配等领域,这种队列被称为优先队列,核心的方法有: Insert()方...

2646
来自专栏闻道于事

Java之集合初探(一)

一、集合概述、区别 集合是一种容器,数组也是一种容器 在Java编程中,装各种各样的对象(引用类型)的叫做容器。 为什么出现集合类? 面向对象语言对事物的体现都...

2297
来自专栏用户2442861的专栏

java+内存分配及变量存储位置的区别

Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Java的内存管理与内存泄露以及Java垃圾回收方面的知识,今天我们再次深入Java核心,详细...

351
来自专栏Hongten

python开发_python关键字

The following identifiers are used as reserved words, or keywords of the languag...

693
来自专栏java学习

面试题8(如何获得数组大小)

给出语句“int[]array" 声明,并且初始化该数组,则下面哪个表达式会返回数组的大小。请选择正确的答案。 (a) array[].length() (b)...

3236
来自专栏用户3030674的专栏

约瑟夫环(排成圈)

/** * 约瑟夫环问题主要是考虑下标问题,只要解决了下标控制问题,这个题目就不难了 * 在这里我是分成了3中情况: * 1,下标小于剩余人数时:删...

622

扫码关注云+社区