public static ListNode deleteDuplicates(ListNode head) {
if(head == null)
return null;
ListNode dummy = new ListNode(0);
dummy.next = head;
ListNode fast = head;
ListNode slow = dummy;
while(fast!=null){
while(fast.next!=null&&fast.val==fast.next.val){
fast = fast.next;
}
if(slow.next!=fast){
slow.next = fast.next;
fast = slow.next;
}
else{
slow = slow.next;
fast = fast.next;
}
}return dummy.next;
}