# LeetCode – Remove Duplicates from Sorted List II (Java)

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

For example, given 1->1->1->2->3, return 2->3.

Java Solution

```public ListNode deleteDuplicates(ListNode head) { ListNode t = new ListNode(0); t.next = head;   ListNode p = t; while(p.next!=null&&p.next.next!=null){ if(p.next.val == p.next.next.val){ int dup = p.next.val; while(p.next!=null&&p.next.val==dup){ p.next = p.next.next; } }else{ p=p.next; }   }   return t.next; }```
Category >> Algorithms >> Interview
If you want someone to read your code, please put the code inside <pre><code> and </code></pre> tags. For example:
```<pre><code>
String foo = "bar";
</code></pre>
```

There is bug in here. This just removes even number of nodes. Try example:
1->1->1->2->3 and it fails.

Fix do if (previous.data == current.data) in a while loop .

• Ankit Shah

not sure why formatting doesn’t work, this is a better solution with just one for loop

• Ankit Shah

ListNode tmp;

while (current != null) {
tmp = current.next;
if (previous.data == current.data) {