logo CodeStepByStep logo


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

Write a function named doubleList 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 appending a copy of the original sequence to the end of the list. For example, if a variable named front points to the front of a list containing the following values:

{1, 35, 28, 7}

Then the call of doubleList(front); should modify the list to store the following values:

{1, 35, 28, 7, 1, 35, 28, 7}

Constraints: Do not use any auxiliary data structures to solve this problem (no array, vector, stack, queue, string, etc). If the original list contains N nodes, then you should construct exactly N new nodes to be added. 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.