我陷入了一個令人討厭的問題:我有一棵樹並且想遞歸遍歷它。在遞歸期間,我想保存當前路徑,因爲在節點中只保存當前值。我用下面的代碼是:在樹遞歸期間保存路徑
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)
首先我想簡單地做沒有複製列表,但是這顯然不能工作。但即使我複製列表,似乎只使用一個全局列表來收集所有的值,而不是將它們按順序收集到不同的列表中。
我希望對這個(可能)簡單的問題有所幫助。
由於性能方面的原因(你不會喜歡另一種方式!),但是你可以使用不同的數據結構,或者使用不同的數據結構。如果你想,只需保留一份清單。 –