1
我创建了一个双向链表。我的列表只包含2个元素(假设node1
和node2
),并且我想要删除指向列表中第一个节点(node1
)的head
指针。因为在Cpython中,垃圾收集的主要算法是引用计数。双向链表 - 垃圾收集
现在我的问题是 - (例-1)如果我设置self.head
到self.head = self.head.next
并设置node2
prev
(以前)属性None
- 这是否从存储器中完全地删除第一个节点?因为node1
现在没有其他参考。或者必须拨打del
方法,如第二个示例中所示(示例-2)?从meomory完整删除node1
的正确方法是什么?
例-1:
def remHead(self):
temp=self.head.next
self.head=self.head.next
temp.prev=None
例2:
def remHead(self):
temp=self.head.next
del self.head
self.head=temp
self.head.prev=None