Я пробовал этот код несколько раз, а также написал его в итеративной и рекурсивной версиях, но не смог уловить ошибку. Функция возвращает указатель на элемент Node в связанном списке и возвращает nullptr, если его нет в списке.
ListNode<T>* contains(const T& obj)
{
return contains(head, obj);
}
ListNode<T>* contains(ListNode<T>* itr,const T& obj)
{
if (itr == nullptr) return nullptr;
if (itr->data == obj) return itr;
return contains(itr->next, obj);
}
ListNode<T>* contains(T& obj)
{
ListNode<T>* temp = head;
while (temp != nullptr && temp->data != obj)
temp = temp->next;
return temp;
}```