C Program
#include <stdio.h>
#include <stdlib.h>
struct node {
int data;
struct node *next;
};
struct node *head = NULL;
int d, val;
void create() {
struct node *t = malloc(sizeof(struct node));
t->data = val;
t->next = NULL;
struct node **p = &head;
while (*p) p = &(*p)->next;
*p = t;
}
void del() {
struct node dummy;
dummy.next = head;
struct node *p1 = &dummy, *p2;
p2 = p1->next;
while (p2) {
if (p2->data == d) {
p1->next = p2->next;
free(p2);
p2 = p1->next;
} else {
p1 = p2;
p2=p2->next;
}
}
head = dummy.next;
}
int main() {
int n, i;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &val);
create();
}
scanf("%d", &d);
del();
struct node *t = head;
printf("Linked List:");
while (t) {
printf("->%d", t->data);
t = t->next;
}
printf("\n");
return 0;
}
0 Comments