Given the head of a sorted linked list, delete all duplicates such that each element appears only once. Return the linked list sorted as well.
The number of nodes in the list is in the range [0, 300]. -100 <= Node.val <= 100 The list is guaranteed to be sorted in ascending order
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head == null || head.next == null) return head;
ListNode previous = head;
ListNode pointer = head.next;
while(pointer != null) {
if(pointer.val == previous.val) {
previous.next = pointer.next;
pointer = pointer.next;
} else {
previous = pointer;
pointer = pointer.next;
}
}
return head;
}
}