给定一个排序链表,删除所有重复的元素每个元素只留下一个。
样例
给出 1->1->2->null
,返回 1->2->null
给出 1->1->2->3->3->null
,返回 1->2->3->null
* Definition for ListNode
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
/**
* @param ListNode head is the head of the linked list
* @return: ListNode head of linked list
*/
public static ListNode deleteDuplicates(ListNode head) {
// write your code here
if(head==null)
return null;
if(head.next==null)
return head;
ListNode pre = head;//前一节点
ListNode cur = head.next;//当前节点
while(cur!=null){
if(pre.val==cur.val){
cur=cur.next;
if(cur==null)//注意考虑最后几个元素连着相同的情况
pre.next=null;
}
else{
pre.next=cur;
pre=cur;
cur=cur.next;
}
}
return head;
}
}