Skip to main content

遍历

class TreeNode:
def __init__(self, value):
self.value = value
self.left = None
self.right = None

def preorder_traversal(root):
if root is not None:
print(root.value, end=' ')
preorder_traversal(root.left)
preorder_traversal(root.right)

def inorder_traversal(root):
if root is not None:
inorder_traversal(root.left)
print(root.value, end=' ')
inorder_traversal(root.right)

def postorder_traversal(root):
if root is not None:
postorder_traversal(root.left)
postorder_traversal(root.right)
print(root.value, end=' ')

# 构建一个简单的二叉树
# 1
# / \
# 2 3
# / \
# 4 5
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)

# 执行遍历
print("前序遍历:", end='')
preorder_traversal(root) # 输出: 1 2 4 5 3
print("\n中序遍历:", end='')
inorder_traversal(root) # 输出: 4 2 5 1 3
print("\n后序遍历:", end='')
postorder_traversal(root) # 输出: 4 5 2 3 1