Write a function named stutter that accepts as a parameter a reference to a pointer to a ListNode representing the front of a linked list.
Your function should double the size of a list by replacing every integer with two consecutive occurrences of that integer.
For example, if a variable named front points to the front of a list containing {1, 8, 19, 4, 17}, after a call of stutter(front);, the list should store {1, 1, 8, 8, 19, 19, 4, 4, 17, 17}.
Constraints:
Do not use any auxiliary data structures to solve this problem (no array, vector, stack, queue, string, etc).
Do not modify the data field of existing nodes; change the list by changing pointers only.
Assume that you are using the ListNode structure as defined below:
struct ListNode {
int data; // value stored in each node
ListNode* next; // pointer to next node in list (nullptr if none)
}