This commit is contained in:
krahets
2023-08-20 23:27:50 +08:00
parent 68e11cfa34
commit 4d55cafd13
46 changed files with 174 additions and 162 deletions

View File

@@ -10,15 +10,15 @@ comments: true
## 7.2.1   层序遍历
「层序遍历 Level-Order Traversal」从顶部到底部逐层遍历二叉树并在每一层按照从左到右的顺序访问节点。
「层序遍历 level-order traversal」从顶部到底部逐层遍历二叉树并在每一层按照从左到右的顺序访问节点。
层序遍历本质上属于「广度优先搜索 Breadth-First Traversal」它体现了一种“一圈一圈向外扩展”的逐层搜索方式。
层序遍历本质上属于「广度优先遍历 breadth-first traversal」它体现了一种“一圈一圈向外扩展”的逐层遍历方式。
![二叉树的层序遍历](binary_tree_traversal.assets/binary_tree_bfs.png)
<p align="center"> 图:二叉树的层序遍历 </p>
广度优先遍历通常借助队列来实现。队列遵循“先进先出”的规则,而广度优先遍历则遵循“逐层推进”的规则,两者背后的思想是一致的。
广度优先遍历通常借助队列来实现。队列遵循“先进先出”的规则,而广度优先遍历则遵循“逐层推进”的规则,两者背后的思想是一致的。
=== "Java"
@@ -328,7 +328,7 @@ comments: true
## 7.2.2 &nbsp; 前序、中序、后序遍历
相应地,前序、中序和后序遍历都属于「深度优先遍历 Depth-First Traversal」它体现了一种“先走到尽头再回溯继续”的遍历方式。
相应地,前序、中序和后序遍历都属于「深度优先遍历 depth-first traversal」它体现了一种“先走到尽头再回溯继续”的遍历方式。
如下图所示,左侧是深度优先遍历的示意图,右上方是对应的递归代码。深度优先遍历就像是绕着整个二叉树的外围“走”一圈,在这个过程中,在每个节点都会遇到三个位置,分别对应前序遍历、中序遍历和后序遍历。