#python #data-structures #linked-list #circular-list
#python #структуры данных #связанный список #круговой список
Вопрос:
Вот мой код, но при удалении из очереди кажется, что он удаляет любые случайные значения. Почему это так? Спасибо
class Node:
def __init__(self,data):
self.data = data
self.next = None
class CircularLinkedlist:
def __init__(self):
self.head = None
self.size = 0
def dequeue(self):
if self.is_empty():
print('List is Empty')
else:
if self.size == 1:
self.head = None
self.size -=1
else:
pos = self.head.next
self.head = pos
self.head.next = pos.next.next
self.size -=1
Комментарии:
1. Как вы думаете, почему он удаляет случайные узлы?
2.
self.head.next = pos.next.next
неверно. По какой-то причине вы связываете первый узел с третьим узлом (вырезая второй узел).3. Что
self.head.next = pos.next.next
предполагается делать?
Ответ №1:
Эта строка:
self.head.next = pos.next.next
неверно. Вы связываете то, что сейчас является первым узлом, с третьим узлом (вырезая второй узел).
Я не вижу никакой причины для этой строки: я предлагаю вам удалить ее.