擅长:python、mysql、java
<p>到目前为止所建议的解决方案(使用额外的参数将列表传递到递归链上)的另一种解决方案是在从递归返回时构建最终列表。这不是非常有效,因为串联列表需要同时复制这两个列表,但它可以工作:</p>
<pre><code>def problem_a(n):
if n == 1:
return [n]
elif n % 2 == 0:
return [n] + problem_a(n // 2)
else:
return [n] + problem_a(3*n + 1)
</code></pre>