@manfay 主要是在另一个 function 里面要把它全都删除。这个只是创建 linked list 的方式。
ming2281
2016-03-07 10:14:59 +08:00
楼主可以看 list 的 pop 方法, 我帮你贴一下 L.pop([index]) -> item -- remove and return item at index (default last). Raises IndexError if list is empty or index is out of range. Type: builtin_function_or_method
拿 python 写链表是什么鬼。。。。? 清空链表的思路大体是,用一个变量指向第一个节点,删掉该节点后再后移,如此循环。但是注意的是删除该节点后下个节点的信息就丢了,因此还要提前保存下个节点的信息。 代码大约是这样: def delete(linkedList): p = linkedList while p is not None: next = p['next'] // 删除数据 p = next
你没发现那个 linkedList 只要有变量指向它,链表的节点就没办法被干掉吗?。。。。
Frapples
2016-03-07 13:14:04 +08:00
@Cassandra 看了下上面的回复,其实用没有指针变量的语言写链表的正确方法是这样的: 首先要用该语言的线性数组来储存节点空间( python 中是 list )。这样,我们就可以把一个整型数代替 C 中的内存地址来使用。整型数表示的是节点在节点数组中的下标。 程序启动时,节点数组中的空闲节点要串起来组成一个链表,叫空闲链表。然后我们可以模拟 malloc 和 free 了, malloc 会从空闲链表中移除一个节点供使用, free 会把不用的节点回收到空闲链表里。