The header head of a one-way linked list is known, and writes out an algorithm to delete a node, requiring that the node be found first and then deleted.
#include <iostream> using namespace std;
typedef struct Node {int number;
struct node *next;
}node;
Node *delete (node *head,int key) {node *node1=head;
Node *node2=null;
if (head==null) {return NULL;
} else {if (Node1->number==key) {head=head->next;
Free (NODE1);
return head;
} else {while (node1!=null) {node2=node1;
node2=node2->next;
if (Node2->number==key) {node1->next=node2->next;
Free (NODE2);
Break
} node1=node1->next;
} return head;
}}} int main () {node *head= (node*) malloc (sizeof (node));
Node *p,*q,*q1;
int key;
p= (node*) malloc (sizeof (Node));
Q1=q=head;
int i;
for (i=1;i<10;i++) {p->number=i;
head->next=p;
Head=p;
p= (node*) malloc (sizeof (Node));
} head->next=null;
cout<< "original linked list data:" <<endl;
q1=q1->next;
while (q1!=null) {cout<<q1->number<< "";
q1=q1->next;
} cout<<endl; cout<< "Enter the data you want to delete: ";
cin>>key;
P=delete (Q->next,key);
cout<< "Delete a" <<key<< "after the linked list data:" <<endl;
while (p!=null) {cout<<p->number<< "";
p=p->next;
} cout<<endl;
Free (p);
Free (head);
return 0; }
Operation Result:
Original linked list data:
1 2 3 4 5 6 7 8 9
Enter the data to delete: 6
Delete the linked list data after 6:
1 2 3 4 5 7 8 9