Как хранить значения в рекурсии. Вывести все k-суммы путей в двоичном дереве - PullRequest
0 голосов
/ 17 июня 2020

В настоящее время я решаю эту проблему: Распечатайте все пути k-суммы в двоичном дереве. Я пытаюсь вернуть значения из рекурсивной функции, но как мне сохранить их в массиве после завершения каждой рекурсивной функции без потери значений в массив. Помогите пожалуйста!

class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right


class Solution:
    def pathSum(self, root: TreeNode, sum: int):
        total = 0
        array = []
        finalarray = []

        def inorder(root, sum, total):
            if root is None:
                return

            total += root.val
            array.append(root.val)
            if total == sum:
                return finalarray.append(array)

            inorder(root.left, sum, total)
            inorder(root.right, sum, total)

            sum -= root.val
            array.pop()

        inorder(root, sum, total)


root = TreeNode(5)
root.left = TreeNode(4)
root.left.left = TreeNode(11)
root.left.left.left = TreeNode(7)
root.left.left.right = TreeNode(2)
root.right = TreeNode(8)
root.right.right = TreeNode(4)
root.right.left = TreeNode(13)
root.right.right.left = TreeNode(5)
root.right.right.right = TreeNode(1)

solution = Solution()
print(solution.pathSum(root, 22))
...