Pythonで、BFSではなくDFSを使用して、ノードごとに任意の数の子を持つツリーで最も深い葉の深さを返すコードを記述しようとしています。私は近くにいるように見えますが、次のコードにはまだ理解できないバグがあります(つまり、返された深さが正しくありません)。何か助けはありますか?
テストツリーは単純に次のようになります:[[1,2,3]、[4,5]、[6]、[7]、[8]、[]、[]、[]、[]]
def max_depth_dfs(tree): # DOESN'T WORK
max_depth, curr_depth, Q = 0,0, [0]
visited = set()
while Q != []:
n = Q[0]
more = [v for v in tree[n] if v not in visited]
if not more:
visited.add(n)
curr_depth -= 1
Q = Q[1:]
else:
curr_depth += 1
max_depth = max(max_depth, curr_depth)
Q = more + Q
return max_depth