Я пытаюсь объединить два связанных списка итеративно, но то, что у меня есть сейчас, дает мне обратную сторону результата. Есть ли способ объединить списки в правильном порядке без необходимости отменить, если после создания списка результатов?Объединение связанных списков итеративно
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