我想删除链表中的节点并立即在Python中重新使用它,但是我不知道如何实现,这是示例代码:
# Definition for singly-linked list.
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
# delete node
def delete_node_after(pre_node):
deleted_node = pre_node.next
pre_node.next = pre_node.next.next
del deleted_node # incorrect, it is only delete `deleted_node` reference to l2
def test():
l1 = ListNode(1)
l2 = ListNode(2)
l3 = ListNode(3)
l1.next = l2
l2.next = l3
delete_node_after(l2)
print(l1.next.val)
print(l2.val) # l2 is still here
我要执行此操作的原因是此链接列表的生命周期较长,并且我想立即释放已删除节点的内存。
或者我只能等待一段时间后,Python才能通过引用计数自动回收它?