用python实现单链表首端删除定义
时间: 2024-11-09 07:22:47 浏览: 32
在Python中,你可以通过定义一个Node类表示链表中的节点,并实现一个LinkedList类来支持链表的操作,包括在头部删除节点。这里是一个简单的例子:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
# 删除头节点
def delete_first(self):
if self.head is None: # 如果链表为空,直接返回
return None
# 将头节点的下一个节点赋值给头节点
new_head = self.head.next
self.head = new_head # 更新头节点指向新的开始位置
del self.head.previous # 删除原头节点的引用(如果有的话),防止内存泄漏
return new_head # 返回新的头节点数据(若非空)
# 示例
ll = LinkedList()
ll.head = Node(1)
second_node = Node(2)
third_node = Node(3)
ll.head.next = second_node
second_node.next = third_node
new_head = ll.delete_first() # 删除第一个节点(1)
```
在这个例子中,`delete_first`方法会返回新链表的第一个元素,如果没有元素则返回None。注意,为了安全起见,删除了原头节点后,我们还需要将其从前一个节点的`next`属性中移除,以免造成内存泄露。
阅读全文