C++ Проверка на существование элемента в односвязном списке

Мое задание состоит в том, чтобы написать функцию, которая добавляет новый элемент в начало списка, если элемент с таким значением не существует. Я написала код, который добавляет элемент в начало списка (он будет ниже), но я не знаю, как реализовать проверку на то, существует ли элемент в списке внутри функции, в которой я добавляю элемент.

#include <iostream>
using namespace std;

struct Node {
    int data;
    Node* next;
};

struct Node* head; // global variable, can be accessed anywhere
void insert(int x);
void print();

int main() {
    head = NULL; // empty list
    cout << "How many numbers?\n" << endl;

    int n, x;
    scanf("%d",&n);
    for (int i = 0; i < n; i++) {
        cout << "Enter the number: " << endl;
        scanf("%d",&x);
        insert(x);
        print();
    }
}

void insert(int x) {
    struct Node* temp = (struct Node*)malloc(sizeof(struct Node));
    temp->data = x;
    temp->next = head;
    head = temp;
}

void print() {
    struct Node* temp = head;
    cout << ("List is:");
    while(temp!=NULL) {
        cout << ("%d  ",temp->data) << endl;
        temp=temp->next;
    }
    cout << " " << endl;
}

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