Ich habe eine doppelt verkettete Liste erstellt. Meine Liste enthält nur 2 Elemente (angenommen node1
und node2
) und ich möchte den head
Zeiger, der auf den ersten Knoten (node1
) in der Liste verweist, löschen. Da in Cpython der primäre Algorithmus für die Speicherbereinigung die Referenzzählung ist.doppelt verknüpfte Liste - Garbage Collection
Jetzt ist meine Frage - (Beispiel 1), wenn ich die self.head
-self.head = self.head.next
gesetzt und stellen node2
prev
(iV) Attribut None
- das aus dem Speicher des ersten Knotens komplett löscht? Denn die node1
hat jetzt keine weiteren Referenzen. Oder muss del
Methode wie im zweiten Beispiel gezeigt (Beispiel-2)? Welches ist der richtige Weg, um die node1
komplett aus dem Speicher zu löschen?
Beispiel 1:
def remHead(self):
temp=self.head.next
self.head=self.head.next
temp.prev=None
Beispiel 2:
def remHead(self):
temp=self.head.next
del self.head
self.head=temp
self.head.prev=None