题目:
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given 1->1->2
, return 1->2
.
Given 1->1->2->3->3
, return 1->2->3
.
AC:
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if (null == head || null == head.next) {
return head;
}
ListNode dummyNode = new ListNode(-1);
ListNode singleNode = head;
ListNode currentNode = head;
dummyNode.next = head;
while (null != currentNode && null != currentNode.next) {
if (currentNode.val != currentNode.next.val) {
singleNode.next = currentNode.next;
singleNode = singleNode.next;
}
currentNode = currentNode.next;
}
if (singleNode != currentNode) {
singleNode.next = null;
}
return dummyNode.next;
}
}