题目
Given a sorted linked list, delete all duplicates such that each element appear only once.
Example 1:
Input: 1->1->2
Output: 1->2
Example 2:
Input: 1->1->2->3->3
Output: 1->2->3
快慢指针
这题跟26. Remove Duplicates from Sorted Array从排序数组中删除重复项思路一样,只不过是从数组变成了链表。移动链表的指针域就可以了。
python代码
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
if not head:
return None
p1 =head
p2 = head.next
while p2:
if p1.val != p2.val:
p1.next = p2
p1 = p1.next
p2 = p2.next
p1.next = None
return head