删除单项链表中的第一个最小值结点 代码实现
时间: 2024-09-18 15:07:46 浏览: 42
(完整word版)四川大学计算机学院数据结构与算法分析期末试题(2013级A).pdf
删除单链表中的第一个最小值节点通常需要维护两个指针:一个普通指针`current`遍历链表,另一个指针`min`用于记录当前找到的最小值。以下是Python的一个简单实现:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def delete_min(head):
if not head or not head.next: # 如果链表为空或者只有一个元素
return head
current = head
min_val = current.val
while current.next:
if current.next.val < min_val: # 更新最小值
min_val = current.next.val
min_node = current.next
current = current.next
# 删除最小节点并返回新头
if current == min_node: # 最小值在链表尾巴
current.next = current.next.next
else:
current.next = current.next.next # 最小值在链表中间
return head
```
这个函数会遍历整个链表一次,找到第一个最小值节点,然后将其从链表中移除。如果链表本身就是有序的,那么每次迭代都可以直接更新最小值。
阅读全文