有苦有乐的算法 --- 二叉树的按层遍历
题目
给定一个二叉树,进行按层遍历。
例:
解析
给定一颗二叉树:
首先准备一个队列,让头节点入队;
节点出队并打印,同时此节点的左节点2入队,右节点3在入队;
2出队,2的左节点4入队,2的右节点5在入队;
3出队,3的右节点6在入队;
最后以此出队,得到结果。
代码
public static class Node {public int value;public Node left;public Node right;public Node(int v) {value = v;}
}public static void level(Node head) {if (head == null) {return;}Queue<Node> queue = new LinkedList<>();queue.add(head);while (!queue.isEmpty()) {Node cur = queue.poll();System.out.println(cur.value);if (cur.left != null) {queue.add(cur.left);}if (cur.right != null) {queue.add(cur.right);}}
}
有苦有乐的算法 --- 二叉树的按层遍历相关推荐
- 有苦有乐的算法 --- 图的宽度优先遍历
题目 给定一个图,使用队列对其进行宽度优先遍历 代码 public static void bfs(Node start) {if (start == null) {return;}Queue< ...
- 有苦有乐的算法 --- 获取二叉树的最大宽度
题目 一颗二叉树,求其最大宽度. 例: 解析 按层遍历二叉树: 在遍历时,使用用4个变量来记录信息: Node curEnd = null; // 当前层,最右节点是谁 Node nextEnd = ...
- [算法] 二叉树的 先序遍历、中序遍历、后序遍历
本文根据清华大学邓俊辉老师课程<数据结构>总结,课程地址 . 遍历介绍 按照事先约定的某种规则或次序,对节点各访问一次而且仅一次.与向量和列表等线性结构一样,二叉树的这类访问也统称为遍历( ...
- 有苦有乐的算法 --- 判断一颗二叉树是否是完全二叉树、是否是平衡二叉树、是否是搜索二叉树
是否是完全二叉树 完全二叉树:二叉树的每一层要么是满的,要么从左到右处在变满的路上. public static boolean isCBT(Node head) {if (head == null) ...
- 有苦有乐的算法 --- 用栈和递归的方式实现二叉树的前序遍历、中序遍历、后序遍历
前序遍历 递归方式: public static void pre(Node head) {if (head == null) {return;}System.out.println(head.val ...
- 有苦有乐的算法 --- 有序数组中的元素存在问题、最左元素问题和无序数组局部最小问题
一个有序数组,判断是否含有一个元素 解析: 给定一个数组 如果需要判断是否存在的元素为3. 首先找到数组的中间元素: 如果此元素为3,结束: 如果不是,此元素与3比较,此元素如果大于3,在从此元素左边 ...
- 有苦有乐的算法 --- 一个数组中,有两种数出现了奇数次,其余数都出现了偶数次,找到这两种数
题目 一个数组中,有两种数出现了奇数次,其余数都出现了偶数次,找到这两组数 例: [2,4,3,2,5,4] ⇒ [3,5] [1,4,6,3,7,8,3,2,1,2,6,6,7,8] ⇒ [6,4] ...
- 有苦有乐的算法 --- 可能有环也可能无环的两个单链表,判断这两个链表是否相交,如果相交返回相交的第一个节点
题目 可能有环也可能无环的两个单链表,判断这两个链表是否相交,如果相交返回相交的第一个节点. 解析 第一步,判断链表是有环链表还是无环链表: 如果一个单链表无环,它一定有一个指向null的尾结点: 如 ...
- 有苦有乐的算法 --- 基数排序
题目 一个无序数组,使用基数排序的方式从小到大进行排序 解析 给定一个数组: 首先准备一个"桶"(每个桶是一个队列): 从左到右遍历数组,每个元素的个位数是多少,就进入几号桶中: ...
最新文章
- 利用WebClient和WebRequest类获得网页源代码C#
- Android 使用Adapter适配器模式实现无线轮播BannerView
- macos可以升级到指定版本吗_iOS14如期而至!重大更新的全新版本,值得升级吗?答案在这...
- python网格搜索核函数_(转载)Python机器学习笔记GridSearchCV(网格搜索)
- arcgis根据矢量范围裁取tif影像(栅格数据)、批量合并shp文件、根据矢量范围裁取区域内的矢量,输出地理坐标系
- Datahub Python SDK入门手册
- Jquery快速构建可拖曳的购物车-DragDrop
- HDFS文件权限不足导致Sqoop执行失败
- edge下载网络问题无法下载
- PHP打造的轻量级单文件管理系统FileBox V1.10.0.2版
- Python 如何被证明是 2021 年的转折点语言
- 全国计算机三级网络工程技术复习笔记4
- 名企今年给应届生的待遇
- ROS-3DSLAM(二)lvi-sam项目认识
- 条款20:宁以pass-by-reference-to-const替换pass-by-value
- 大学物理复习4-保守力(做功)+功能原理+机械能守恒
- 常用oracle数据库查询命令
- 结队-贪吃蛇-项目进度
- FPGA触摸按键控制LED——拓展:按下之后LED闪烁,再次按下停止闪烁
- 我玩过这个1992年的沙丘游戏,所以您不必
热门文章
- Linux opendir函数
- 微软同步框架入门之四--冲突(Conflict)检测和处理
- 什么是RPA? Robotic Process Automation
- 第一册:lesson thirteen.
- Unity 2021.1.15 ARCore环境配置与样例开发
- 离散数学_九章:关系(2)
- 小白终是踏上了这条不归路----小文的mysql学习笔记(22)--------函数
- NGINX、MongoDB、NPM 开启 Open Core Summit 新篇章
- python中print()的作用是什么_在python中最常见的:print的真正用法
- 【数据结构和算法】2谈谈算法