![b7452efbea134e2cb719a2ebbc19035a.png](https://i-blog.csdnimg.cn/blog_migrate/e9149e35f811312762be4a358fe0f40c.jpeg)
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2输出: 1->2
示例 2:
输入: 1->1->2->3->3输出: 1->2->3
![ef8cf350f2eb21fc0481704988f43093.png](https://i-blog.csdnimg.cn/blog_migrate/823fe1583d7ac65d13bba97f5231a60f.jpeg)
分析:
由于输入的列表已排序,因此我们可以通过将结点的值与它之后的结点进行比较来确定它是否为重复结点。如果它是重复的,我们更改当前结点的 next 指针,以便它跳过下一个结点并直接指向下一个结点之后的结点。
解:
# Definition for singly-linked list.class ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution: def deleteDuplicates(self, head: ListNode) -> ListNode: data = head while data and data.next: if data.val == data.next.val: data.next = data.next.next else: data=data.next return head