二叉树(Binary Tree) 是一种每个节点至多有两个子节点的特殊树形数据结构。
在第 层至多有 个节点;深度为 的二叉树至多总共有 个节点。
A
/ \
B C
/ \ / \
D E F G
Tips
- 当需要广度优先遍历时(BFS), 层次顺序访问时,配合储存 的队列进行,按照先左后右的顺序将子节点加入队列当中。
遍历二叉树
按照访问父节点的值(不是访问节点,是读取节点中的内容,遍历时始终要先访问节点中的指针)的顺序的不同,可以分为三种不同的遍历方式,以上面的二叉树为例。
-
前序遍历 (Pre-order Traversal):
- 访问顺序:根节点 → 左子树 → 右子树
- 例子的访问结果是:
A -> B -> D -> E -> C -> F -> G
-
中序遍历 (In-order Traversal):
- 访问顺序:左子树 → 根节点 → 右子树
- 例子的遍历结果是:
D -> B -> E -> A -> F -> C -> G
-
后序遍历 (Post-order Traversal):
- 访问顺序:左子树 → 右子树 → 根节点
- 例子的遍历结果是:
D -> E -> B -> F -> G -> C -> A