logo CodeStepByStep logo

linkedListMystery1

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

Consider the following linked list of ListNode objects, with a pointer named front that points to the first node:

front -> [10] -> [20] -> [40] -> [30] -> [90] -> [80] -> [70] -> [60] -> [100] -> [0] /

Draw the state of the linked list after the following code runs on it. If a given node is removed from the list, you don't need to draw that node, only the ones that remain reachable in the original list.

void linkedListMystery1(ListNode*& front) {
    ListNode* curr = front;
    while (curr != nullptr) {
        if (curr->next != nullptr && curr->data > curr->next->data) {
            curr->data++;
            ListNode* temp = curr->next;
            curr->next = curr->next->next;
            temp->next = curr;
        }
        curr = curr->next;
    }
}
list state

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.