题目描述:
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2
输出: 1->2
示例 2:
输入: 1->1->2->3->3
输出: 1->2->3
解题思路:
1.首先判断链表是否为空
2.如果当前结点值等于下一个结点值,则将当前结点的next指向下一结点的next(即删除重复元素),又由于重复的元素可能不只一个,所以在当前结点值不等于下一个结点值时,向后移动当前结点
class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
curr=head
if head==None:
return head
while curr.next and curr.next.next :
if curr.val==curr.next.val:
curr.next=curr.next.next
else:
curr=curr.next
if curr.next and curr.val==curr.next.val:
curr.next=None
#print(curr)
return head