logo CodeStepByStep logo


Language/Type: C++ linked lists pointers
Author: Marty Stepp (on 2016/08/27)

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)
Type your C++ solution code here:

This is a function problem. Write a C++ function as described. Do not write a complete program; just the function(s) above.

You must log in before you can solve this problem.

Log In

Need help?

If you do not understand how to solve a problem or why your solution doesn't work, please contact your TA or instructor.
If something seems wrong with the site (errors, slow performance, incorrect problems/tests, etc.), please

Is there a problem? Contact a site administrator.

© Marty Stepp, all rights reserved.