遍历具有任意数量分支的树可以使用深度优先搜索(DFS)或广度优先搜索(BFS)算法来实现。下面是使用递归的深度优先搜索算法的代码示例:
class TreeNode:
def __init__(self, val=None, children=None):
self.val = val
self.children = children
def traverse_tree(root):
if root is None:
return
# 处理当前节点
print(root.val)
# 递归遍历子节点
if root.children:
for child in root.children:
traverse_tree(child)
使用示例:
# 创建树的示例
tree = TreeNode(1, [
TreeNode(2, [
TreeNode(5),
TreeNode(6)
]),
TreeNode(3),
TreeNode(4)
])
# 遍历树
traverse_tree(tree)
输出结果:
1
2
5
6
3
4
这段代码定义了一个树节点类TreeNode
,每个节点有一个值val
和一个子节点列表children
。traverse_tree
函数接收一个树的根节点作为输入,并使用递归的深度优先搜索算法遍历树。在遍历的过程中,首先处理当前节点,然后递归遍历子节点列表中的每个子节点。
上一篇:遍历具有嵌套结构的JSON