给定一个排序链表,删除所有重复的元素每个元素只留下一个。
样例
给出 1->1->2->null
,返回 1->2->null
给出 1->1->2->3->3->null
,返回 1->2->3->null
/** * Definition of ListNode * class ListNode { * public: * int val; * ListNode *next; * ListNode(int val) { * this->val = val; * this->next = NULL; * } * } */ class Solution { public: /** * @param head: The first node of linked list. * @return: head node */ ListNode *deleteDuplicates(ListNode *head) { // write your code here if(!head||!head->next) return head; ListNode *p=new ListNode(-1); p->next=head; head=p; ListNode *k=head; ListNode *q=head->next; while(q){ if(q->val==k->val){ q=q->next; k->next=q; }else{ k=q; q=q->next; } } head=head->next; return head; } };