I'm trying to create one way node where inserted values are sorted. I tried do this like this, but i receive error on debuging. Please about help, its 's very important for me.
struct list {
int key;
list* next;
};
void add(list *&head, int key) {
list* tmp = new list;
tmp->key = key;
list* current = head;
if (current == NULL) {
    tmp->next = head;
    head = tmp;
    return;
}
while (current != NULL) {
    if (current->key == key) {
        cout << "Taki klucz juz istnieje" << endl;
        return;
    }
    cout << current->next << endl;
    if (key > current->key && current->next == NULL)  {
        cout << "---------" << endl;
            current->next = tmp;
            return;
    }
    if (key > current->key && current->next!=NULL && key < current->next->key) {
        list* currentNextCopy = current->next;
        current->next = tmp;
        tmp->next = currentNextCopy;
        return;
    }
    current = current->next;
}
    tmp->next = head;
    head = tmp;
}
int main()
{
srand(time(NULL));
list* head = NULL;
add(head, 2);
add(head, 4);
add(head, 3);
add(head, 1);
add(head, 5);
}
Maybe problem is very stupid, but I'm beginner at C++. Very please help.
