标签:des style blog color io ar for strong sp
[Description] Given a unsort linked list, delete all the duplication from them, no temporary space permission.
[Thought] Set two points, from head to tail, scaning all linked list. O(n^2).
[Implementation] C code:
1 #include<stdio.h> 2 3 typedef struct linkedList 4 { 5 int data; 6 struct linkedList* next; 7 } llist; 8 9 llist** delDupli(llist **head) 10 { 11 // two point, t1 for target, t2 for mover. 12 llist *t1, *t2; 13 t1=t2=*head; 14 while(t1->next != NULL) 15 { 16 // ajust t2 from t1! 17 t2=t1; 18 while(t2->next != NULL) 19 { 20 // check if they are the same 21 if(t2->next->data == t1->data) 22 { 23 // move t2->next; note: no memory free here. 24 t2->next=t2->next->next; 25 } 26 // after move out node, check if t2 is already the last one. 27 if(t2->next != NULL) 28 { 29 t2=t2->next; 30 } 31 } 32 t1=t1->next; 33 } 34 return head; 35 } 36 37 int addValue(llist **head, int val) 38 { 39 40 llist *pnode; 41 llist *t=*head; 42 // apply memory for linked list. 43 pnode=(llist*)malloc(sizeof(llist)); 44 if(NULL==pnode) 45 { 46 return 0; 47 } 48 pnode->data=val; 49 pnode->next=NULL; 50 // first node 51 if(NULL==*head) 52 { 53 *head=pnode; 54 return 1; 55 } 56 // move temp point to the last node 57 while(t->next != NULL) 58 { 59 t=t->next; 60 } 61 t->next=pnode; 62 return 1; 63 } 64 65 // out put data, be careful about the first node. 66 int printList(llist **head) 67 { 68 llist *t=*head; 69 printf("%d, ",t->data); 70 while(t->next != NULL) 71 { 72 t=t->next; 73 printf("%d, ",t->data); 74 } 75 printf("\n"); 76 return 1; 77 } 78 79 int main() 80 { 81 int a[]={2,3,5,6,8,2,4,6,8,9,2,5,2}; 82 llist *head=NULL; 83 int i; 84 85 for(i=0;i<(sizeof(a)/sizeof(a[0]));i++) 86 { 87 // printf("a[i]:%d\n",a[i]); 88 addValue(&head,a[i]); 89 // printList(&head); 90 } 91 printf("Initial linked list:\n"); 92 printList(&head); 93 printf("After deleting:\n"); 94 printList(delDupli(&head)); 95 }
[002] delete_duplication_of_linked_list
标签:des style blog color io ar for strong sp
原文地址:http://www.cnblogs.com/lyutian/p/4043436.html