【发布时间】:2016-06-28 16:32:15
【问题描述】:
假设我对Node 有这样的类定义
class Node:
def __init__(self, data, next):
self.data = data
self.next = next
我还有head 变量指向链表的开头。
设置head = None完全删除链表就够了吗?我想 gc 应该做它的工作?
我将它与c/c++ 进行比较,您仍然应该遍历整个列表并释放每个元素。
【问题讨论】:
-
python 使用引用计数...如果将 head 分配给前导节点,然后将 head 重新分配给其他东西...前导节点的引用计数减少一...如只要引用计数为零,垃圾收集器就会对其进行垃圾收集......如果你担心内部内存管理,python 可能不是适合你的工具......(它往往会做正确的事情......但内部通常是特定于实现的)
-
@JoranBeasley 如果前导节点的引用计数为 0,那么它将被垃圾收集,所有其他链接节点将被链式收集?
-
只要子节点不指向父节点
标签: python linked-list