删除单链表中相同的元素
时间: 2023-05-30 14:06:14 浏览: 92
单链表中重复元素的删除
5星 · 资源好评率100%
要删除单链表中相同的元素,可以使用双指针遍历单链表,遇到相同元素则删除其中一个。具体的实现过程如下:
1. 定义两个指针p和q,初始时都指向单链表的头节点head。
2. 遍历单链表,当p不为空时,执行以下操作:
- 如果p的值与q的值相同,则删除p节点(即将q的next指向p的下一个节点),并将p指向下一个节点;
- 如果p的值与q的值不同,则将p和q同时向后移动一个节点。
3. 返回删除相同元素后的单链表。
以下是Python代码实现:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def deleteDuplicates(head: ListNode) -> ListNode:
if not head:
return head
p = q = head
while p:
if p.val == q.val:
q.next = p.next
else:
q = p
p = p.next
return head
```
阅读全文