Given a sorted linked list, delete all duplicates such this each element appear only once.
For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.
The idea of solving a problem is to traverse the list, if the elements of the 2 nodes are equal, delete the latter one, otherwise it will be shifted. It is important to note that you do not directly manipulate the head or the head will change when you return, or you can save the head separately to return.
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode Next;
* ListNode (int x) {val = x;}
* *
/public class Solution {public
ListNode deleteduplicates (ListNode head) {
if (head==null| | Head.next==null) return head;
ListNode P=head;
while (p!=null&&p.next!=null) {
if (p.val==p.next.val) {
p.next=p.next.next;
}
else{
p=p.next;
}
}
return head;
}
}