Я не вижу x и y в вашем коде. Полезно, если вы включите полную трассировку. Кажется, что ваша функция попадает в последний узел в списке, чей элемент next
равен None. Очевидно, что None
не имеет атрибутов next
и data
.
Тем временем я изменил вашу функцию insertNode_pos. Одна важная строка здесь: return
if pos == 0
. В этом случае ваша функция не должна продолжаться.
def insertNode_pos(self, data, pos):
new_node = SinglyLinkedListNode(data)
if pos == 0:
new_node.next = self.head
self.head = new_node
return
temp = self.head
for iter in range(pos):
if iter == 0:
temp = self.head
else:
temp = temp.next
new_node.next = temp.next
temp.next = new_node
Еще одно замечание: реализация __str__
является более распространенной практикой для печати содержимого ваших данных:
def __str__(self):
output = []
temp = self.head
while temp is not None:
output.append(str(temp.data))
temp = temp.next
return ",".join(output)
Тогда вы можете просто сказать print(llist)