Я пытаюсь объединить связанный список Python без копирования данных, содержащихся в узлах списка.У меня есть функция, которая объединяет список, используя копии переданных узлов, но я не могу получить функцию, которая не использует копии для работы.
Эти функции предназначены для тестирования и синхронизации;Я знаю, что встроенный список Python просто великолепен!
Вот класс, с которым я работал, и функция сцепления.
class Cell:
def __init__( self, data, next = None ):
self.data = data
self.next = next
def print_list(self):
node = self
while node != None:
print node.data
node = node.next
Функция объединения не должна быть членомфункция класса Cell.
def list_concat(A, B):
while A.next != None:
A = A.next
A.next = B
return A
Эта функция перезаписывает первый элемент списка, если параметр A имеет более одного узла.Я понимаю, почему это происходит, но не знаю, как это исправить.
Вот код тестирования, который я использовал для этой функции.
e = Cell(5)
test = Cell(3, Cell(4))
test2 = list_concat(test2, e)
test2.print_list()
Любое понимание илиПомощь будет принята с благодарностью.
* отредактирован для исправления форматирования кода