Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python二叉树的先序,中序,后序遍历

作者:淡情   发布日期:2025-06-25   浏览:85

# 定义二叉树的节点类
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 随机函数

大家都在看

python时间格式

python ord和chr

python中的yield

python自定义异常

python list.pop

python的for i in range

npm config set python

python代码简单

python读取文件夹

python中turtle

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站