Я не посещал занятия CS в течение 2 лет. Я не могу понять, почему этот простой связанный список портит:
int exists(linkedlist *list, int val) {
if(list == NULL)
return 0;
if(list->value == val)
return 1;
return exists(list->next, val);
}
Когда я пытаюсь выполнить exists(list,33);
, первое значение в списке перезаписывается на 33. Я был вынужден использовать итеративный подход и запустил программу, однако это меня не устраивает, так как кажется, что это правильное решение. Почему это не работает?
(ПРИМЕЧАНИЕ: при создании узлов я всегда устанавливаю list->next = NULL;
)