擅长:python、mysql、java
<p>下面是一个非递归解决方案:</p>
<p>步骤如下:</p>
<ol>
<li>合并字符串</li>
<li>把名单倒过来</li>
<li>将字符串缩减为嵌套列表。在</li>
</ol>
<p>它可能不比递归版本优雅,但是如果列表是深嵌套的,它不会炸毁堆栈。在</p>
<pre><code>def collapse(x):
l = deque([x])
result = []
y = ""
while l:
p = l.popleft()
for i in p:
if isinstance(i, list):
result.append(y)
y = ""
l.append(i)
break
else:
y = y + i
result.append(y)
return result
x = ['a', '1', ['c', 'd', ['e', ['f', '123']]]]
j = [ i for i in collapse(x)]
j.reverse()
print reduce(lambda x, y: [y, x], j[1:], [j[0]])
</code></pre>