题意:给定一个单向已排序的链表,删除链表中重复的元素使每个元素只出现一次。
例子:
1->1->1->2,返回1->2
1->1->2->3->3->,返回1->2->3
思路:两个指针 ,分别从头开始,如果下一指针指向的元素与上一指针指向的元素相同则只将下一指针后移;否则两指针同时后移。
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head == null) return null;
ListNode left = head;
ListNode right = head.next;
while(right != null){
if(right.val == left.val){
right = right.next;
}else{
left.next = right;
left = right;
}
}
left.next = null;
return head;
}
}