在计算机科学中,层序遍历(Level Order Traversal)是访问二叉树节点的一种重要方式。它也被称为广度优先搜索(Breadth-First Search, BFS),从根节点开始,逐层从左到右访问所有节点。本文将手把手教你用Python层序遍历算法实现这一过程,即使你是编程小白也能轻松掌握!
想象一棵树:根在最上面,子节点一层一层往下延伸。二叉树层序遍历就是先访问第0层(根节点),再访问第1层(根的左右孩子),接着第2层……直到最后一层。这种“由上到下、由左到右”的访问顺序非常适合用队列(Queue)来实现。
因为队列具有“先进先出”(FIFO)的特性:我们先把根节点放入队列;然后取出它并访问,同时把它的左右孩子按顺序加入队列;重复这个过程,就能自然地实现逐层遍历。这正是BFS算法实现的核心思想。
下面我们用Python来完整实现一个层序遍历函数。首先定义二叉树节点类,然后编写遍历函数。
class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = rightfrom collections import dequedef level_order_traversal(root): """ 实现二叉树的层序遍历(广度优先搜索) :param root: TreeNode - 二叉树的根节点 :return: List[int] - 按层序遍历的结果列表 """ if not root: return [] result = [] queue = deque([root]) # 初始化队列,放入根节点 while queue: node = queue.popleft() # 取出队列头部节点 result.append(node.val) # 访问该节点 # 将左右子节点加入队列(如果存在) if node.left: queue.append(node.left) if node.right: queue.append(node.right) return result
让我们构建一个简单的二叉树并测试我们的函数:
# 构建如下二叉树:# 1# / \# 2 3# / \# 4 5root = TreeNode(1)root.left = TreeNode(2)root.right = TreeNode(3)root.left.left = TreeNode(4)root.left.right = TreeNode(5)print(level_order_traversal(root)) # 输出: [1, 2, 3, 4, 5]
通过本教程,你已经掌握了如何用Python层序遍历二叉树。这种广度优先搜索方法不仅适用于二叉树,还可扩展到图等更复杂的数据结构。记住核心思想:用队列管理待访问节点,逐层推进。希望这篇关于BFS算法实现的入门指南对你有所帮助!
掌握二叉树层序遍历,是迈向高级算法的重要一步。动手试试吧!
本文由主机测评网于2025-12-24发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/20251212109.html