以下是一个用递归方法实现的N叉树遍历的代码示例,其中包含对内部节点路径的输出:
class Node:
def __init__(self, val=None, children=None):
self.val = val
self.children = children
def traverse(node, path):
if not node:
return
# 输出当前节点的值和路径
print("Node:", node.val)
print("Path:", "->".join(map(str, path + [node.val])))
if node.children:
for child in node.children:
# 递归遍历子节点,将当前节点的值添加到路径中
traverse(child, path + [node.val])
# 创建一个N叉树
root = Node(1, [
Node(2, [
Node(5),
Node(6)
]),
Node(3),
Node(4)
])
# 调用遍历函数
traverse(root, [])
输出结果:
Node: 1
Path: 1
Node: 2
Path: 1->2
Node: 5
Path: 1->2->5
Node: 6
Path: 1->2->6
Node: 3
Path: 1->3
Node: 4
Path: 1->4
这个示例中,我们定义了一个Node
类来表示N叉树的节点,Node
类包含一个值val
和一个子节点列表children
。traverse
函数用于遍历N叉树,它接收一个节点和当前路径作为参数。在遍历过程中,我们首先输出当前节点的值和路径,然后递归遍历每个子节点,并将当前节点的值添加到路径中。