题目描述:
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
思路:
创建一个指针,并当这个指针下一个数不为空,循环跑下去。当这个指针的下一个数和当前指针指的数不相等,当前指针跳过下一个数直接指向当前指针的next的next。最后返回head的新list。
代码:
class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
#创建指针p
p = head
#循环
while p and p.next:
if p.val == p.next.val:
#当前指针跳过一个数
p.next = p.next.next
else:
p = p.next
return head
解释:
此题是在存在的Linked List基础上更改盛一个新的Linked List。回顾21题是合并两个Linked List成一个新的Linked List。