当前位置:首页python > 正文

二叉树基本遍历:后序遍历(Postorder Traversal)

作者:野牛程序员:2025-12-22 11:34:01python阅读 2101
二叉树基本遍历:后序遍历(Postorder Traversal)
# /*
# 二叉树基本遍历:后序遍历(Postorder Traversal)
# --------------------------------------------------------
# 定义:
# 后序遍历的访问顺序为:
#       左子树 → 右子树 → 根节点
#
# 特点:
# - 适合先处理子节点,再处理根节点的场景
# - 常用于删除树、计算树的高度或递归释放资源
#
# 以下示例实现:
# 1) 二叉树节点结构
# 2) 后序遍历(递归版本)
# */

# 二叉树节点定义
class TreeNode:
    def __init__(self, value):
        self.value = value
        self.left = None      # 左子节点
        self.right = None     # 右子节点

# 后序遍历(递归)
def postorder(node):
    if node is None:
        return

    postorder(node.left)         # 遍历左子树
    postorder(node.right)        # 遍历右子树
    print(node.value, end=" ")   # 访问根节点


# --------------------------------------------------------
# 构建示例二叉树
#            A
#          /   \
#         B     C
#       /   \
#      D     E

root = TreeNode("A")
root.left = TreeNode("B")
root.right = TreeNode("C")
root.left.left = TreeNode("D")
root.left.right = TreeNode("E")

print("后序遍历结果:", end="")
postorder(root)
print()

# --------------------------------------------------------
# 要点总结:
# 1) 后序遍历:左 → 右 → 根;
# 2) 适用于先处理子节点,再处理根节点的操作;
# 3) 常用于树的删除、释放资源、计算节点值等场景;
# 4) 递归写法最直观,也可使用栈实现非递归版本;
# 5) 与前序、中序遍历配合,可完成各种树相关算法。
# */


# 后序遍历结果:D E B C A


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • 二叉树基本遍历:后序遍历(Postorder Traversal)
  • 相关推荐

    最新推荐

    热门点击