#include #include using namespace std; struct node { //Task 1 char val; node *next; }; void printList(node *head) { //Task 2 if (head == NULL) { cout << \"Empty list\" << endl; return; } node *temp = head; int count = 0; while(temp != NULL) { cout << \"Node \" << count << \": \" << temp ->val << endl; count++; temp = temp->next; } } struct node *globalhead = NULL; void deepCopy(node *head1, node *head2) { //Task 3 if (head1 == NULL) { cout << \"Empty list\" << endl; return; } node *temp = head1; node *curr = NULL; node *prev = NULL; while(temp != NULL) { curr = (struct node *)malloc(sizeof(struct node)); curr->val = temp->val; if(prev==NULL){ head2 = curr; globalhead = curr; }else{ prev->next = curr; } prev = curr; temp = temp->next; } } int main() { //Task 4 // Example #1 node p00, p01, p02, p03, p10, p11, p12, p13; // List 1: A B B B p00.val = \'A\'; p00.next = &p01; p01.val = \'B\'; p01.next = &p02; p02.val = \'B\'; p02.next = &p03; p03.val = \'B\'; p03.next = NULL; p10.next = NULL; cout<<\"First List:\"< Solution //Tested on Windos OS Dev c++ /*********************LinkedList.cpp********************/ #include #include using namespace std; struct node { //Task 1 char val; node *next; }; void printList(node *head) { //Task 2 if (head == NULL) { cout << \"Empty list\" << endl; return; } node *temp = head; int count = 0; while(temp != NULL) { cout << \"Node \" << count << \": \" << temp ->val << endl; count++; temp = temp->next; } } struct node *globalhead = NULL; void deepCopy(node *head1, node **head2) { //Task 3 if (head1 == NULL) { cout << \"Empty list\" << endl; return; } node *temp = head1; node *curr = NULL; node *prev = NULL; while(temp != NULL) { curr = (struct node *)malloc(sizeof(struct node)); curr->val = temp->val; curr->next = NULL; if(*head2==NULL){ *head2=curr; }else{ prev=*head2; while(prev->next!=NULL){ prev=prev->next; } prev->next=curr; } temp = temp->next; } } int main() { //Task 4 // Example #1 node p00, p01, p02, p03, p10, p11, p12, p13; // List 1: A B B B p00.val = \'A\'; p00.next = &p01; p01.val = \'B\'; p01.next = &p02; p02.val = \'B\'; p02.next = &p03; p03.val = \'B\'; p03.next = NULL; p10.next = NULL; cout<<\"First List:\"<.