题目
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2
输出: 1->2
示例 2:
输入: 1->1->2->3->3
输出: 1->2->3
思路
排序链表,只需要判断当前节点的值和前一个节点的值是否相同即可。需要两个指针,一个指向当前节点,另一个指向当前节点的上一个节点。如果相同,则删除当前节点。
代码
class Solution {
public ListNode
deleteDuplicates(ListNode head
) {
if(head
== null
) return head
;
ListNode t
= head
.next
,s
=head
;
while(t
!= null
){
if(t
.val
== s
.val
){
s
.next
= t
.next
;
t
= t
.next
;
}
else{
s
= s
.next
;
t
= t
.next
;
}
}
return head
;
}
}