Python 递归遍历二叉树示例及三种遍历方式
以下是一个简单的 Python 递归遍历二叉树的示例:
class Node:
def __init__(self, val=None):
self.val = val
self.left = None
self.right = None
def __str__(self):
return str(self.val)
# 前序遍历
def preorder_traversal(root):
if root:
print(root.val, end=' ')
preorder_traversal(root.left)
preorder_traversal(root.right)
# 中序遍历
def inorder_traversal(root):
if root:
inorder_traversal(root.left)
print(root.val, end=' ')
inorder_traversal(root.right)
# 后序遍历
def postorder_traversal(root):
if root:
postorder_traversal(root.left)
postorder_traversal(root.right)
print(root.val, end=' ')
# 示例
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
preorder_traversal(root) # 1 2 4 5 3
inorder_traversal(root) # 4 2 5 1 3
postorder_traversal(root) # 4 5 2 3 1
这里定义了一个 Node 类来表示树的节点,分别实现了前序遍历、中序遍历和后序遍历三种遍历方式。在遍历函数中,首先判断当前节点是否存在,如果存在则先访问当前节点,然后递归遍历左子树和右子树。最后,我们可以创建一个根节点并添加一些子节点,然后使用这些遍历函数来遍历这棵树。
原文地址: https://www.cveoy.top/t/topic/mSy4 著作权归作者所有。请勿转载和采集!