看到它是DFS的关键是递归发生在路径积累之前。换句话说,在将任何内容放入“路径”列表之前,递归将进行所需的深度。返回列表之前,所有最深的兄弟姐妹都累积在“路径”上。
我相信代码的正确之处在于“追加”而不是“扩展”,因为“路径”是所有路径的累加器。虽然它可能写成
paths += find_all_paths(graph, node, end, path)
(编辑)…而不是
newpaths = find_all_paths(graph, node, end, path) for newpath in newpaths: paths.append(newpath)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)