12-123 Language/Type: C++ linked lists pointers Write the code that will produce the given "after" result from the given "before" starting point by modifying links between the nodes shown and/or creating new nodes as needed. Assume that the nodes have already been declared and initialized to match the "before" figure below. There may be more than one way to write the code, but do NOT change any existing node's data field value. If a variable does not appear in the "after" picture, it doesn't matter what value it has after the changes are made. If a given node object does not appear in the "After" picture, you must free its memory to avoid a memory leak. Before list: 1 -> 2/ After list: 1 -> 2 -> 3/ Assume that you are using the following ListNode structure: struct ListNode { int data; // data stored in this node ListNode* next; // a link to the next node in the list ListNode(int data = 0, ListNode* next = nullptr) (...) // constructor };
Types of Linked List
A sequence of data elements connected through links is called a linked list (LL). The elements of a linked list are nodes containing data and a reference to the next node in the list. In a linked list, the elements are stored in a non-contiguous manner and the linear order in maintained by means of a pointer associated with each node in the list which is used to point to the subsequent node in the list.
Linked List
When a set of items is organized sequentially, it is termed as list. Linked list is a list whose order is given by links from one item to the next. It contains a link to the structure containing the next item so we can say that it is a completely different way to represent a list. In linked list, each structure of the list is known as node and it consists of two fields (one for containing the item and other one is for containing the next item address).
please answer
The Algorithm of the code:-
1. Create a new ListNode called head with a data value of 1.
2. Create a new ListNode called second with a data value of 2 and set its next pointer to point to the head.
3. Initialize a current node pointer to point to the head.
4. Output the "before" list to the console.
5. Create a new ListNode called third with a data value of 3 and set its next pointer to point to the second.
6. Output the "after" list to the console.
7. Initialize the current node pointer to point to the head again.
8. Iterate through the linked list and delete each node until the current node pointer reaches the end.
Step by step
Solved in 5 steps with 2 images