약간의 성가신 문제가 있습니다. 나무가있어서 재귀 적으로 트래버스하고 싶습니다. 재귀가 진행되는 동안 노드에서 현재 값만 저장되므로 현재 경로를 저장하려고합니다. 다음 코드를 사용합니다 :트리 재귀 중 경로 저장
def getPaths(tree, level, path):
copyPath = list(path)
if level > 1:
if not tree.children:
'''do some non important stuff'''
for child in tree.children:
copyPath.append(child.data.value)
getPaths(child,level+1, copyPath)
처음에 나는 목록을 복사하지 않고 간단하게 시도했지만 분명히 작동하지 않았습니다. 그러나 목록을 복사 할 때라도 하나의 전역 목록을 사용하여 경로별로 다른 목록에 수집하는 대신 모든 값을 수집하는 것처럼 보입니다.
나는 (아마) 쉬운 문제에 도움을 주시면 감사하겠습니다.
성능상의 이유로 같은 목록을 계속 전달할 것입니다 (다른 방식은 맘에 들지 않을 것입니다!)하지만 다른 데이터 구조를 사용하거나 다른 형식을 다르게 사용할 수 있습니다. 원하는 경우 목록의 목록 만 유지하십시오. –