/
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode next;
* ListNode(int x) : val(x), next(NULL) {}
* };
/
class Solution
{
public:
ListNode deleteDuplication(ListNode head)
{
if (!head || !head->next) return head;
if (head->next && head->next->val == head->val)
{
while (head->next && head->val == head->next->val) // 开头重复
{
head = head->next;
}
return deleteDuplication(head->next); // 中间重复
}
head->next = deleteDuplication(head->next); // 尾部重复
return head;
}
};