python单链表删除所有结点
时间: 2024-11-29 11:36:27 浏览: 1
在Python中,如果你有一个单链表,并想要删除所有的节点,通常我们会创建一个新的链表来替换旧链表,而不是直接在原地删除所有节点,因为单链表没有内置的反向遍历功能,这会使删除操作复杂。以下是一个简单的例子,通过迭代的方式创建一个空链表来替换原有的链表:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
def delete_all_nodes(head):
# 创建新的头节点表示空链表
new_head = None
# 遍历原链表并逐个节点删除
while head:
next_node = head.next
head = head.next # 移动到下一个节点
head = None # 删除当前节点,实际上这里并没有真正删除,只是将head指针置为None
return new_head
# 示例:
# 初始化一个链表
old_list = [Node(1), Node(2), Node(3)]
for node in old_list:
node.next = node # 创建循环链表方便演示
new_list = delete_all_nodes(old_list[0]) # 新链表为空,所以返回None
# 注意,现在`old_list`仍然指向原来的循环链表,但由于所有节点都被设为了None,实际上已经无法访问了
```
阅读全文