先序,中序,后序遍历二叉树代码
时间: 2024-11-25 12:20:31 浏览: 11
使用先序,中序,后序遍历二叉树
在计算机科学中,二叉树的遍历有三种常见的方法:先序遍历、中序遍历和后序遍历。
1. **先序遍历** (Preorder Traversal):
- 访问根节点(根 -> 左子树 -> 右子树)
```python
def preorder_traversal(root):
if root is not None:
print(root.val) # 输出当前节点值
preorder_traversal(root.left) # 遍历左子树
preorder_traversal(root.right) # 遍历右子树
```
2. **中序遍历** (Inorder Traversal):
- 访问左子树(左 -> 根 -> 右子树)
```python
def inorder_traversal(root):
if root is not None:
inorder_traversal(root.left)
print(root.val) # 输出当前节点值
inorder_traversal(root.right)
```
3. **后序遍历** (Postorder Traversal):
- 访问左子树和右子树(左 -> 右 -> 根)
```python
def postorder_traversal(root):
if root is not None:
postorder_traversal(root.left)
postorder_traversal(root.right)
print(root.val) # 输出当前节点值
```
以上都是递归的方式实现,如果用迭代法(栈),也可以实现遍历,但会稍微复杂一些。
阅读全文