二叉树遍历 python
时间: 2023-10-28 20:57:35 浏览: 88
二叉树的遍历主要有三种方式:前序遍历、中序遍历和后序遍历。以下是使用递归方法实现这三种遍历的示例代码:
```python
# 定义二叉树节点
class Node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
# 前序遍历(根左右)
def preorder_traversal(node):
if node is None:
return []
return [node.data] + preorder_traversal(node.left) + preorder_traversal(node.right)
# 中序遍历(左根右)
def inorder_traversal(node):
if node is None:
return []
return inorder_traversal(node.left) + [node.data] + inorder_traversal(node.right)
# 后序遍历(左右根)
def postorder_traversal(node):
if node is None:
return []
return postorder_traversal(node.left) + postorder_traversal(node.right) + [node.data]
# 构建二叉树示例
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
# 测试前序遍历
print("前序遍历结果:", preorder_traversal(root))
# 测试中序遍历
print("中序遍历结果:", inorder_traversal(root))
# 测试后序遍历
print("后序遍历结果:", postorder_traversal(root))
```
这段代码定义了一个二叉树节点类 `Node`,并实现了前序、中序和后序遍历的递归函数。通过创建节点对象并设置左右子节点,然后调用相应的遍历函数,可以得到对应的遍历结果。
阅读全文