广度优先遍历的核心思想如下:从根节点开始遍历,然后遍历其子节点,再从左至右的,依次遍历其孙子节点的,以此类推,直到完成整颗二叉树的遍历。 50 20 60 15 30 70 以如上的二叉树为例,其广度优先遍历的顺序是:50、20、60、15、30、70。 在代码中,我们使用队列进行广度优先遍历,先把 ...
分类:
编程语言 时间:
2018-10-19 23:38:10
阅读次数:
224
10.4 1 那棵树就长成下面这个样子 ~~~ / 18 12 10 7 4 2 21 5 / ~~~ 下面就借用10.4 1提供的数据,构建一棵树,然后分别对它做10.4 2所要求的递归遍历和10.4 3所要求的非递归遍历。 递归遍历的方式有三种,前序、中序、后序,实现上的差异,无非是把Trave ...
分类:
编程语言 时间:
2018-10-15 20:48:10
阅读次数:
327
二叉树的遍历: 前序遍历(递归): LeetCode 144 非递归: 中序遍历(递归):LeetCode 94 非递归: 后序遍历(递归): LeetCode 145 非递归:(大致解析:如果该结点的左右子树都为空或者左右子树中的一个为上一次访问的结点即该结点的右结点已经访问过了,则输出。否则将该 ...
分类:
编程语言 时间:
2018-10-15 00:41:32
阅读次数:
190
二叉树如上图所示。 一、递归遍历 二、非递归遍历 要借助栈或队列 初始化把根节点压栈,访问根节点并弹出,然后依次将右节点、左节点入栈,直到栈为空。 思路:回溯。访问根节点的左孩子,访问左孩子的左孩子,直到左孩子为空,这个过程中把所有访问过的节点压栈,当左孩子为空,pop该节点,访问该节点的右孩子。空 ...
分类:
其他好文 时间:
2018-09-29 14:40:15
阅读次数:
162
树的基本概念 度 结点的度 该结点子树的个数 树的度 该树中结点的最大度数 叶子结点(终端结点) 终端结点 高度/深度/层数 该树的行数 二叉树 满二叉树 完全二叉树 最多最下面两层上结点的度数最下一层上的结点都集中在该层左边的位置上 二叉树性质 第i层上的结点数目最多为2i 1 (i ≥ 1 ...
分类:
其他好文 时间:
2018-09-23 22:30:12
阅读次数:
225
二叉树的遍历 今天下午看了二叉树的三种遍历方式,虽然能写出代码,但是理解可能不太到位,感觉很容易忘,所以想到一个形象的方法,把每个节点当作公交车站,而访问节点则是在这个公交车站捡垃圾,右子树和左子树则表示岔路。然后这个捡垃圾的人钟爱左边这个方向,所以一直以左优先。甲乙丙三个人,都爱捡垃圾,但是思考方 ...
分类:
其他好文 时间:
2018-09-18 22:48:42
阅读次数:
253
# 二叉树的遍历# 对二叉树中的所有元素不重复的访问一遍# 广度优先遍历# 层序遍历# 从第一层开始,没一层从左至右遍历元素# 深度优先遍历# 假设树的根节点为D,左子树为L,右子树为R,且要求L一定在R之前,则有以下遍历方式:# 前序遍历:也叫先序遍历,也叫先根遍历,DLR# 中序遍历:也叫中根遍 ...
分类:
编程语言 时间:
2018-09-16 15:35:33
阅读次数:
200
转自: https://blog.csdn.net/soundwave_/article/details/53120766 二叉树的遍历分为以下三种: 先序遍历:遍历顺序规则为【根左右】 中序遍历:遍历顺序规则为【左根右】 后序遍历:遍历顺序规则为【左右根】 什么是【根左右】?就是先遍历根,再遍历左 ...
分类:
其他好文 时间:
2018-09-12 15:57:03
阅读次数:
134
一、二叉树的前序遍历: 二、二叉树的中序遍历: 三、二叉树的后序遍历: 四、二叉树的层次遍历: ...
分类:
其他好文 时间:
2018-08-31 15:45:35
阅读次数:
158
1. 二叉树的遍历:先序(递归、非递归),中序(递归、非递归),后序(递归、非递归)。 2. 获取二叉树节点个数: 3. 判断二叉树是否为完全二叉树: 4. 求二叉树两个节点的最小公共祖先: 5. 二叉树的翻转: 6. 求二叉树第k层的节点个数: 7. 求二叉树中节点的最大距离(相距最远的两个节点之 ...
分类:
编程语言 时间:
2018-08-28 17:57:22
阅读次数:
179