深度优先算法的前序遍历中序遍历和后序遍历
时间: 2024-02-11 13:02:38 浏览: 125
深度优先遍历
深度优先算法是一种用于遍历或搜索树或图的算法。在二叉树中,深度优先算法有三种遍历方式:前序遍历、中序遍历和后序遍历。
1. 前序遍历(Preorder Traversal):首先访问根节点,然后递归地遍历左子树,最后递归地遍历右子树。
2. 中序遍历(Inorder Traversal):首先递归地遍历左子树,然后访问根节点,最后递归地遍历右子树。
3. 后序遍历(Postorder Traversal):首先递归地遍历左子树,然后递归地遍历右子树,最后访问根节点。
下面是深度优先算法的前序遍历、中序遍历和后序遍历的示例代码:
1. 前序遍历:
```python
def preorderTraversal(root):
if root is None:
return []
result = []
result.append(root.val)
result.extend(preorderTraversal(root.left))
result.extend(preorderTraversal(root.right))
return result
```
2. 中序遍历:
```python
def inorderTraversal(root):
if root is None:
return []
result = []
result.extend(inorderTraversal(root.left))
result.append(root.val)
result.extend(inorderTraversal(root.right))
return result
```
3. 后序遍历:
```python
def postorderTraversal(root):
if root is None:
return []
result = []
result.extend(postorderTraversal(root.left))
result.extend(postorderTraversal(root.right))
result.append(root.val)
return result
```
阅读全文