1.层序遍历

层序遍历:层序遍历即逐层按顺序遍历二叉树的各个节点,故层序遍历又叫广度优先遍历.
如图:广度优先遍历即按ABCDEFGH的顺序遍历

2.解题思路

1.这里我们利用队列先进先出的结构特点,当我们在队列中弹出一个树的节点时,我们便把树的左孩子和右孩子入到队列之中.(如果父节点的左右孩子为空时,我们便可不对其孩子进行入队列操作)
2.根据上面描述,我们可以用一个while循环解决入队列与出队列操作,结束条件便是判断队列是否为空.

3.代码实现

我们用C语言实现时,我们得自己写一个队列的结构,该结构能实现判空,入队,出队的操作,这里主要以实现层序遍历为主.省略了队列的那一部分代码.

typedef struct BinaryTreeNode {struct BinaryTreeNode* left;struct BinaryTreeNode* right;BTDataType val;
}BTNode;void BT_LayerTraversal(BTNode* root) {Queue Q;QueueInit(&Q);//!root 可以理解为 root == NULLif (!root) {printf("该二叉树为空!\n");return;}//在进入循环之前我们得手动将头结点入队QueuePush(&Q , root);while ( !QueueEmpty(&Q) ) {//用cur记录父节点的信息,方便后序对子节点入队.BTNode* cur = QueueFront(&Q);printf("%c ",cur->val);QueuePop(&Q);//如果左右子树不为空,入左右子树if (cur->left) QueuePush(&Q ,cur->left); if (cur->right)QueuePush(&Q, cur->right);}

二叉树----层序遍历相关推荐

  1. 二叉树层序遍历_求二叉树的层序遍历

    题目描述 给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) 例如: 给定的二叉树是{3,9,20,#,#,15,7}, 该二叉树层序遍历的结果是 [ [3], [9,20], ...

  2. 牛客-二叉树层序遍历

    牛客-二叉树层序遍历 #include <stdio.h> #include <queue> #include <stack> #include <math. ...

  3. 【LeetCode】专题一 二叉树层序遍历

    二叉树层序遍历 在本文中,我将会选取LeetCode上二叉树层序遍历的多道例题,并给出解答,通过多道题我们就可以发现,二叉树的层序遍历并不复杂,并且有着共通点. 102. 二叉树的层序遍历 给你二叉树 ...

  4. 数据结构:二叉树层序遍历和判断是否为完全二叉树

    层序遍历 从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第二层上的节点,接着是第三层的节点,以此类推,自上而下,自左至右逐层访问树的节点的过程. while(队列!=NULL) ...

  5. 二叉树层序遍历分层[递归迭代两种思想+三种解法]

    层序遍历分层的递归迭代解法 前言 一.二叉树层序遍历分层 二.递归与迭代 总结 参考文献 前言 层序遍历作为二叉树遍历的基本遍历,一般来说只能用迭代来解.但是分层输出则既可用迭代,又可配合level用 ...

  6. 102 二叉树层序遍历

    层序遍历,每次层的输出是是一个一维数组,整个二叉树的输出结果是二维数组 BFS遍历,依托于队列结构,每次在根节点出栈的时候,将其值加在结果列表中,然后将他的左右孩子节点入队列. 层序遍历相对于BFS, ...

  7. 二叉树层序遍历(广度优先搜索)基础概念与经典题目(Leetcode题解-Python语言)

    二叉树的广度优先搜索即从上到下.从左到右地进行搜索,对于层序遍历(Level Order)问题,即依次遍历第一层节点.第二层节点-等,基本可以秒杀. 广度优先搜索是通过队列来实现的,python中优先 ...

  8. BFS(二)二叉树层序遍历(I、II)、二叉树锯齿形层序遍历、N叉树层序遍历

    目录 102. 二叉树的层序遍历 107. 二叉树的层序遍历 II 103. 二叉树的锯齿形层序遍历 429. N 叉树的层序遍历 102. 二叉树的层序遍历 给你二叉树的根节点 root ,返回其节 ...

  9. C++二叉树层序遍历

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 二叉树的分类 二叉树的遍历 1.递归法 2. 迭代法 **3. 层序遍历 总结 二叉树的分类 满二叉树:如果一棵二叉树只有度 ...

  10. 二叉树层序遍历——java

    目录 一.题目 二.层序遍历顺序 三.思路(迭代法) 四.代码实现 一.题目 1.链接:力扣 2.内容:给你二叉树的根节点 root ,返回其节点值的 层序遍历 . (即逐层地,从左到右访问所有节点) ...

最新文章

  1. 【把握未来】一文总结5G边缘计算的价值机遇
  2. Ubuntu12.04配置JDK1.8
  3. 使用java代码发送电子邮件
  4. [转载]Linux基础知识之挂载详解(mount,umount及开机自动挂载)
  5. ASP.NET MVC区域
  6. IBASE的hierarchy结构
  7. 【C++grammar】继承与构造test1代码附录
  8. Spring中Aware的用法以及实现
  9. [转]AIX平台下如何增加用户和组的名称长度
  10. 力扣打家劫舍系列总结
  11. 【python工具】获取linux和windows系统指定接口的IP地址
  12. ubuntu如何查看系统是多少位和系统版本号
  13. 写一手好字:硬笔书法轻松自学指南(知乎周刊 Plus)-读书笔记
  14. 如何写一份大家都满意的专利说明书
  15. biopython中文指南_Biopython学习笔记
  16. SpringBoot项目中使用CXF发布和调用webservice接口
  17. MATLBA官方给出的2D Allen-Cahn Matlab代码分析
  18. Open Distro for Elasticsearch
  19. iOS调用系统相机将英文改成中文
  20. 删除wmspdmv监控进程-- 背后的眼睛

热门文章

  1. Java——坦克大战(2)
  2. Kubernetes 纳管节点卡住导致加入集群失败问题解决
  3. ffplay flv mp4 转_手动视频转码教程,FFmpeg
  4. Java 开发岗面试知识点大全解析
  5. 操作系统 宏内核和微内核的区别
  6. 信号与系统——第一章 绪论
  7. 亿级流量的缓存方案-缓存同步-Canal实战
  8. mac视频播放器哪个最好用?mac用什么视频播放器?
  9. Chrome浏览器安装Axure RP Extension for Chrome插件方法
  10. 手机2d横版游戏服务器位置同步,分析Cocos2d-x横版ACT手游源代码 2、服务器场景...