Как self.next = None хранит адрес следующего значения в связанном списке? - PullRequest
0 голосов
/ 16 декабря 2018

Я новичок в классах на Python.Я пытаюсь реализовать связанные списки.Может кто-нибудь объяснить мне, как self.head.next.value выводит следующее значение в списке?Хотя next не назначено никому, но каким-то образом оно способно напечатать правильный ответ.Я видел похожий пост здесь Как self.next = None получает следующее значение l1? , но ответ не был должным образом объяснен, так как я ничего не присваиваю self.next.

class Element(object):
    def __init__(self, value):
          self.value = value
          self.next = None

class LinkedList(object):
    def __init__(self, head=None):
        self.head = head

    def append(self, new_element):
        current = self.head
        if self.head:
            while current.next:
                current = current.next
            current.next = new_element
        else:
            self.head = new_element

l = LinkedList(Element(1))
l.append(Element(2))
print (l.head.next.value)

Вывод показывает: 2

1 Ответ

0 голосов
/ 16 декабря 2018

[...], поскольку я ничего не назначаю для self.next.

Ну, вы инициализируете .next на None.Однако, когда вы вызываете append(), это меняет .next последнего элемента:

current.next = new_element
...