如何在python

时间:2019-04-04 04:01:09

标签: python linked-list

我想删除链表中的节点并立即在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才能通过引用计数自动回收它?

0 个答案:

没有答案