假设我对 Node
class Node:
def __init__(self, data, next):
self.data = data
self.next = next
我还有 head
变量,它指向链表的开头。
设置head = None
是否足以完全删除链表?我想 gc 应该做它的工作?
我将它与 c/c++
进行比较,您仍然应该遍历整个列表并释放每个元素。
最佳答案
通常,您甚至不需要做任何事情。当 head
变量的生命周期结束时,如果您没有对该列表的任何其他引用,该列表将变得无法访问并自动符合收集条件。在 CPython 上,它通常会立即被收集,但您不应该依赖它。
如果您想在 head
变量的生命周期结束之前使列表符合收集条件,设置 head = None
会起作用,del head
。 (请注意,del
的意思是“取消设置此变量”,而不是“删除此对象”。)
关于Python:如何完全删除链表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38081643/