rendered paste body#include <stdio.h>#include <stdlib.h>struct linked_list { int data; struct linked_list * next;};typedef struct linked_list item;void add(item **p, int data) { if (!(*p)) { (*p) = (item *)malloc(sizeof(item)); (*p)->next = NULL; (*p)->data = data; } else add(&(*p)->next,data);}void print(item *p){ while (p) { printf("%d\n", p->data); p=p->next; }}char _delete(item **p){ item *ptr = *p; if (!(*p)) return '\0'; if (*p == ((*p)->next)) { ptr = (*p); *p = NULL; } else { ptr = (*p)->next; } free(ptr);}char delsearch(item **p, int e){ item *tmp = (*p); if (!(*p)) return '\0'; while (((tmp->next) != (*p)) && ((tmp->next->data) != e)) tmp = tmp->next; if ((tmp->next->data) !=e) if (tmp == (*p)->next) *p = NULL; else *p = tmp; return _delete(&tmp);}int main(int argc, char *argv[]){ item *ptr=NULL; int i; for (i=1; i<=10; i++) { add(&ptr,i); } delsearch(&ptr,5); print(ptr); return EXIT_SUCCESS;}