contributed by < void110916
>
1
2
#include <stddef.h>
struct ListNode {
int val;
struct ListNode *next;
};
struct ListNode *deleteDuplicates(struct ListNode *head)
{
if (!head)
return NULL;
if (head->next&&head->val==head->next->val) {
/* Remove all duplicate numbers */
while (head->next&&head->val==head->next->val)
head = head->next;
return deleteDuplicates(head->next);
}
head->next = deleteDuplicates(head->next);
return head;
}
此方法有以下特點:
list 指向 NULL 的判斷有兩種意義:
因此若該 list 有