Я написал функцию, которая добавляет узел в начало связанного списка. Он увеличивает каждый элемент в обоих массивах, запоминая последний элемент, чтобы его можно было добавить в конец, а затем вставляет новый узел с индексом 0 в списках.
I оставил индексы self.pointers в терминах self.values, поскольку они имеют одинаковый размер и настраиваются одинаково.
Мой код:< /p>
Код: Выделить всё
class LinkedList:
def __init__(self):
self.values = []
self.pointers = []
def addAtHead(self, val):
if not self.values:
self.values.append(val)
self.pointers.append(None)
return
append_val = self.values[-1]
for i in range(1, len(self.values)):
self.values[len(self.values) - i] = self.values[len(self.values) - i-1]
self.pointers[len(self.values) - i] = self.pointers[len(self.values) - i-1]
self.values[0] = val
self.pointers[0] = self.values[1]
self.values.append(append_val)
self.pointers.append(None)
ll = LinkedList()
ll.addAtHead(10)
ll.addAtHead(20)
Код: Выделить всё
Traceback (most recent call last):
File "/main.py", line 29, in
ll.addAtHead(2)
File "/main.py", line 20, in addAtHead
self.pointers[0] = self.values[1]
~~~~~~~~~~~^^^
IndexError: list index out of range
В чем моя ошибка?
Подробнее здесь: https://stackoverflow.com/questions/792 ... -two-lists
Мобильная версия