logo CodeStepByStep logo

linkedListMystery3

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

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

front -> [55] -> [10] -> [2] -> [3] -> [4] -> [20] -> [7] -> [6] -> [8] -> [9] -> [12] -> [15] /

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 linkedListMystery(ListNode*& front) {
    ListNode* curr = front;
    ListNode* next = curr->next;
    while (next != nullptr) {
        if (curr->data % 5 == 0) {
            front = front->next;
        } else if (curr->data % 2 == 0 && next->data % 2 == 0) {
            curr->next = next->next;
        } else if (curr->data % 3 == 0) {
            next->data++;
            curr->data--;
            curr = next;
        }
        curr = next;
        next = next->next;
    }
}
list state

You must log in before you can solve this problem.


Log In

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.