Я пытаюсь создать рекурсивную (или циклическую) функцию, которая принимает строку в качестве входных данных, formate "(2 (1) (3))" (я не беспокоюсь о сортировке он) и интерпретирует его как список в двоичном дереве, таком как [2 [1 [] []] [3 [] []]], чтобы быть простым. Вот что я разработал до сих пор, но он не работает. Вот что у меня до сих пор:Создание двоичного дерева из ввода строки
def subtrees(string):
tree = []
for x in string:
if x == "(":
return tree.append(subtrees(string[1:]))
elif x == ")":
return tree
else:
tree.append(int(x))
return tree.append(subtrees(string[1:]))
После обширного тестирования, я нашел две большие ошибки: один из них, что return
после того, как находит первые закрытые скобки завершает весь бега функции (а не просто что один рекурсивный вызов для завершения узла), и по какой-то причине, когда я пытаюсь распечатать вывод, он печатает None
. Любые подсказки/подсказки будут оценены, так как я действительно очень потерян здесь.