# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
sum = 25
ans = []
def recurse(s, traverse, ls):
#append tuple
ls = ls + (traverse.val,)
if (traverse.right):
recurse(s, traverse.right, ls)
if (traverse.left):
recurse(s, traverse.left, ls)
if (s==sum):
#convert touple and add to answer
tmp = list(ls)
ans.append(tmp)
a = tuple()
recurse(0, root, a)
在这段代码中,我动态地将列表附加到一个列表(ans)中。在这个例子中,我使用递归和元组来构建每个子列表,因为它是不可变的。然后,我将其转换为一个列表,并将其附加到我的答案中。如果我只使用列表,我将无法在每次调用函数时传递副本。你知道吗
以这种方式使用元组是否有性能方面的缺点?有没有更好的方法来递归地创建类似问题的列表?你知道吗
而且,这种方法不适用于二维列表。。。制作2D不变列表的最佳方法是什么?你知道吗
我猜
sum
是您希望执行的最大遍历次数。你知道吗以下操作将完成:
那么,你就这样称呼它:
或者,如果您可以在
__init__
提供right
和left
节点,那么您可以采用一种很酷的函数式方法:相关问题 更多 >
编程相关推荐