python单链表删除全部结点
时间: 2024-11-29 17:38:03 浏览: 15
在Python中,如果你想要删除单链表的所有节点,可以创建一个新的空链表来替换原来的链表,因为Python中的列表实际上是动态数组,无法直接从头部开始逐个删除元素。这里有一个简单的示例:
```python
# 定义单链表节点类
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
# 删除所有节点的函数
def delete_all_nodes(head):
# 创建新的头节点作为空链表
new_head = ListNode(0)
# 将原链表的所有节点都链接到新链表的尾部
while head is not None:
temp = head
head = head.next
temp.next = new_head.next
new_head.next = temp
return new_head.next # 返回新链表的头节点,此时它是空的
# 示例
# 创建一个链表
node1 = ListNode(1)
node2 = ListNode(2)
node3 = ListNode(3)
node1.next = node2
node2.next = node3
# 删除所有节点后的链表
head = delete_all_nodes(node1)
```
在这个例子中,`delete_all_nodes` 函数会遍历输入链表并将每个节点连接到新链表的尾部,然后返回新链表的头节点,由于所有的原始节点都被链接到了新链表上,所以返回的新链表是空的。
阅读全文