层序遍历二叉链表
层序遍历二叉链表通常需要借助队列(Queue)数据结构来实现。这是因为队列的先进先出(FIFO)特性可以很好地对应到层序遍历的从左到右、从上到下的特性。
以下是一个使用Python实现的层序遍历二叉树的示例:
Python
from collections python新手代码示例import deque
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def levelOrder(root):
if not root:
return []
result, queue = [], deque([root])
while queue:
level = []
for _ in range(len(queue)):
node = queue.popleft() # 弹出队列左侧的元素
level.append(node.val) # 将节点值添加到当前层结果列表中
if node.left: # 将左子节点添加到队列中
queue.append(node.left)
if node.right: # 将右子节点添加到队列中
queue.append(node.right)
result.append(level) # 将当前层的节点值列表添加到最终结果中
return result
在这个代码中,我们首先定义了一个二叉树节点类TreeNode,然后定义了一个levelOrder函数来进行层序遍历。我们首先将根节点放入队列中,然后在每次循环中,我们都将队列中所有的节点弹出,并将它们的值添加到当前层的列表中。同时,我们将每个节点的左子节点和右子节点添加到队列中,以便在下一次循环中处理。最后,我们将每个层的列表添加到最终的结果中。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论