# 定义二叉树的节点类
class TreeNode:
def __init__(self, value=0, left=None, right=None):
self.value = value
self.left = left
self.right = right
# 先序遍历 (Pre-order Traversal): 根 -> 左 -> 右
def pre_order_traversal(root):
if root is None:
return []
result = [root.value] # 访问根节点
result += pre_order_traversal(root.left) # 遍历左子树
result += pre_order_traversal(root.right) # 遍历右子树
return result
# 中序遍历 (In-order Traversal): 左 -> 根 -> 右
def in_order_traversal(root):
if root is None:
return []
result = in_order_traversal(root.left) # 遍历左子树
result += [root.value] # 访问根节点
result += in_order_traversal(root.right) # 遍历右子树
return result
# 后序遍历 (Post-order Traversal): 左 -> 右 -> 根
def post_order_traversal(root):
if root is None:
return []
result = post_order_traversal(root.left) # 遍历左子树
result += post_order_traversal(root.right) # 遍历右子树
result += [root.value] # 访问根节点
return result
# 示例代码
if __name__ == "__main__":
# 构建一个简单的二叉树
# 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("先序遍历:", pre_order_traversal(root)) # 输出: [1, 2, 4, 5, 3]
print("中序遍历:", in_order_traversal(root)) # 输出: [4, 2, 5, 1, 3]
print("后序遍历:", post_order_traversal(root)) # 输出: [4, 5, 2, 3, 1]
上一篇:python与excel
下一篇:python 随机函数
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站