删除链表L中最小结点
时间: 2024-11-27 15:09:15 浏览: 9
c语言链表编程实例
删除链表L中最小的节点通常涉及两个步骤:首先找到链表中的最小值,然后将最小值从链表中移除。
1. **查找最小值**:
- 如果链表非空,初始化两个指针`current`和`minNode`,分别指向链表头和头结点。假设当前最小值就是头结点,`minNode = current`。
- 遍历链表,如果遇到比当前`minNode`值更小的元素,更新`minNode`为新节点。
2. **删除最小值**:
- 如果`minNode`不是头结点,那么它的前驱节点的`next`指针可以指向`minNode`的下一个节点,这样就删除了`minNode`。
- 如果`minNode`是头结点,因为链表至少有一个节点,所以直接设置头结点为下一个节点,即`head = head.next`。
下面是一个伪代码的例子:
```python
def deleteMin(head):
if not head or not head.next:
return None # 如果链表为空或者只有一个元素
minNode = head
current = head
while current.next and current.next.val < minNode.val:
minNode = current.next
current = current.next
if current != head: # 不是最小值的情况
current.next = current.next.next
else: # 最小值为头节点的情况
head = head.next
return head
```
阅读全文