3设L为带头结点的单链表,表中元素值递增有序,编写程序删除表中值相同的多余元素。
时间: 2024-10-11 09:14:55 浏览: 9
删除单链表中值相同的所有多余元素,可以采用迭代的方式来实现。首先创建一个新的头结点,并有两个指针,一个指向当前节点(current),另一个指向前一个节点(previous)。遍历原链表,如果当前节点的值等于前一个节点的值,则将前一个节点的next指针跳过当前节点;如果当前节点的值大于前一个节点的值,说明找到了新的值,需要保留,就将前一个节点更新为当前节点并继续前进。
以下是伪代码形式:
```python
def deleteDuplicates(head):
if head is None or head.next is None:
return head
current = head
previous = None
while current is not None:
next_temp = current.next
if previous is None or current.value > previous.value:
previous = current
else:
# 删除当前节点
current.next = next_temp
current = next_temp
return head
```
在这个过程中,我们假设`head`是一个链表节点,`value`是节点的数据域,`next`是指向下一个节点的引用。通过这种方式,最后返回的新链表将只包含连续的、唯一的值。
阅读全文