我正在嘗試迭代地組合兩個鏈接列表,但是我現在正在給我的結果相反。有沒有辦法按正確的順序組合列表,而不必在創建結果列表之後進行反轉?迭代地組合鏈表
class Link:
empty =()
def __init__(self, first, rest=empty):
assert rest is Link.empty or isinstance(rest, Link)
self.first = first
self.rest = rest
def __add__(self, lst):
"""
>>>s = Link(1, Link(2))
>>>s + Link(3,Link(4))
Link(1,Link(2,Link(3,Link(4))))
"""
result = Link.empty
while self is not Link.empty:
result = Link(self.first,result)
self = self.rest
while lst is not Link.empty:
result = Link(lst.first, result)
lst = lst.rest
return result
看起來你已經創建了一個堆棧。 :) – erip
你的列表是不可變的嗎?這很重要,因爲不可變列表允許您採取一些快捷方式(例如,重用列表的一部分),如果列表可能被其他代碼修改,則不能執行此操作)。 – Blckknght