二叉树遍历的例子
在计算机科学中,二叉树是一种树状数据结构,在其中每个节点最多有两个子节点,一般分为左子树和右子树。此外,二叉树通常有三种遍历方式:前序遍历、中序遍历和后序遍历,这种遍历方式是指如何按照一定的顺序来递归地访问二叉树中的每个节点。本文将从多个角度分析二叉树遍历的例子。
1. 前序遍历例子
前序遍历的顺序是:先访问节点本身,再访问左子节点,再访问右子节点。因此,对于下面这棵二叉树的遍历顺序,就是 1-2-4-5-3-6-7。
```
1
/ \
2 3
\
4
\
5
```
2. 中序遍历例子
中序遍历的顺序是:先访问左子节点,再访问节点本身,再访问右子节点。因此,对于下面这棵二叉树的遍历顺序,就是 4-2-5-1-6-3-7。
```
1
/ \
2 3
\
4
\
5
```
3. 后序遍历例子
后序遍历的顺序是:先访问左子节点,再访问右子节点,最后访问节点本身。因此,对于下面这棵二叉树的遍历顺序,就是 4-5-2-6-7-3-1。
```
1
/ \
2 3
\
4
\
5
```
4. 代码实现
下面将给出前序遍历的代码实现:
```
class TreeNode(object):
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def preorderTraversal(root):
"""
:type root: TreeNode
:rtype: List[int]
"""
res = []
pre_order(root, res)
return res
def pre_order(node, res):
"""
:type node: TreeNode
:type res: List[int]
"""
if node is None:
return
res.append(node.val)
pre_order(node.left, res)
pre_order(node.right, res)
```
5. 深度优先遍历和广度优先遍历
除了前序遍历、中序遍历和后序遍历之外,还有两种常见的遍历方式:深度优先遍历和广度优先遍历。深度优先遍历是指从根节点开始,尽可能深地搜索每一个子节点,再返回上一个节点继续搜索;而广度优先遍历则是指从根节点开始,按照层级顺序依次访问每个节点。
6.