1 /**
2 * Definition for singly-linked list.
3 * struct ListNode {
4 * int val;
5 * struct ListNode *next;
6 * };
7 */
8
9
10 struct ListNode* removeDuplicateNodes(struct ListNode* head){
11 int sum[30000];
12 for(int i=0;i<30000;i++) //不加这个的话,初始化可能不全是0
13 {
14 sum[i]=0;
15 }
16 struct ListNode* p =(struct ListNode *)malloc(sizeof(struct ListNode)),*tail;
17 p->next = NULL;
18 tail = p;
19
20 while(head)
21 {
22 sum[head->val]++;
23 if(sum[head->val]==1)
24 {
25 struct ListNode* s =(struct ListNode *)malloc(sizeof(struct ListNode));
26 s->val = head->val;
27 s->next = NULL;
28 tail->next = s;
29 tail = s;
30 }
31
32 head = head->next;
33 }
34
35 return p->next;
36 }