leetcode(83) remove duplicates from sorted list 解法

Given a sorted linked list, delete all duplicates such that each element appear only once.

Example 1:

1
2
Input: 1->1->2
Output: 1->2

Example 2:

1
2
Input: 1->1->2->3->3
Output: 1->2->3

解法

基本的链表操作,双指针法,注意空表的处理。

具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class  {
public ListNode deleteDuplicates(ListNode head) {
if (head == null) {
return head;
}
ListNode pre = head;
ListNode tmp = head.next;
while (tmp != null) {
if (tmp.val == pre.val) {
pre.next = tmp.next;
tmp = tmp.next;
} else {
pre = tmp;
tmp = tmp.next;
}
}
return head;
}
}