Как сохранить все пути DFS дерева в списке? - PullRequest
0 голосов
/ 09 июля 2019
def traverse(node, path =[]):
    path.append(node.val)
    if len(node.children)==0:
       print(path)
       path.pop()
   else:
       for child in node.children:
           traverse(child)    
       path.pop()

Приведенный выше код печатает дерево поиска в глубину, например

[3, 2, 1, 4]

[3, 2, 5]

Но он просто печатает это значение, я хочу сохранить его в списке и вернуть список как

[[3,2,1,4], [3,2,5]].

Какие изменения я должен внести в код для достижения этой цели?

1 Ответ

1 голос
/ 10 июля 2019

Вам поможет простая модификация!

def traverse(node, result=[], path =[]):
    path.append(node.val)
    if len(node.children)==0:
        print(path)
        result.append(path.copy())
        path.pop()
    else:
        for child in node.children:
            traverse(child)
        path.pop()
    return result

Скопируйте путь в список с именем «result» и верните его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...