给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2
输出: 1->2
示例 2:
输入: 1->1->2->3->3
输出: 1->2->3
思路:
1.利用双指针;
2.因为是排序的。两个相邻元素相同则慢指针不变,快指针不断指向下一元素;
3.两个相邻元素不同则快慢指针变化为同一位置。
代码如下:
public ListNode deleteDuplicates(ListNode head) {
if(head==null)return null;
ListNode current=head;
while(current.next!=null){
ListNode temp=current.next;
if(temp.val==current.val){
current.next=temp.next;
}else{
current=temp;
}
}
return head;
}