一、题目:
描述
删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次
例如:
给出的链表为1→1→2,返回1→2.
给出的链表为1→1→2→3→3,返回1→2→3
二、输入输出示例:
三、代码:
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
class Solution {
public:
/**
*
* @param head ListNode类
* @return ListNode类
*/
ListNode* deleteDuplicates(ListNode* head) {
// write code here
if(head == NULL || head->next == NULL){
return head;
}
ListNode *p1,*p2;
p1 = head;
p2 = head->next;
while(p1 != NULL){
while(p2 != NULL && p1->val == p2->val){
p1->next = p2->next;
p2 = p2->next;
}
p1 = p1->next;
if(p1 != NULL){
p2 = p1->next;
}
}
return head;
}
};