Нужна помощь в реализации цикл в списке по заданию

В списке содержится несколько нулей. Разместить их вначале через один элемент, первый, третий, пятый и т.д.

#include <iostream>
using namespace std;

struct Node // Узел 

{
    int value; // Значение узла (значение)
    Node* next; // Следующий элемент узла 

};

int main(int argc, char const* argv[]) {
    setlocale(LC_ALL, "Rus");

    Node* head = NULL; // голова списка
    Node* tail = NULL; // последний элемент списка

    int currentValue; // текущее значение
    Node* newNode = 0; // текущий узел

    int N;
    cout << "Введите кол-во чисел в списке: ";
    cin >> N;

    for (int i = 0; i < N; i++) {
        cout << "Введите число: ";
        cin >> currentValue;

        newNode = new Node();
        newNode->value = currentValue;
        newNode->next = NULL;
        if (head == NULL) {
            head = newNode;
            tail = newNode;
        }
        else {
            tail->next = newNode;
            tail = newNode;
        }
    }
    Node* current = head;  //Указатель на первый элемент списка (на голову)

    cout << "\nСписок до изменений: \n";
    while (current != NULL) {
        cout << current->value << " ";
        current = current->next;
    }
    cout << endl;

    int m;
    cout << "\nВведите числа с нулём: ";
    cout << "\nЕсли 0 Разместить их вначале через один элемент, первый, третий, пятый и т.д.";
    cout << "\nm = ";
    cin >> m;
   

    current = head;
   
    Node* next = NULL;  // Следующий элемент списка
    Node* beginZero = NULL;  
     // реализовать цикл с 0
    for (int i = 1; i <= N; i++) {
        next = current->next;

    }

    current = head;

    cout << "\nСписок после изменений: \n";
    while (current != NULL) {
        cout << current->value << " ";
        current = current->next;
    }
    cout << endl;

    return 0;
}

Ответы (0 шт):