Анализ ошибки:
ошибка: пустое значение не игнорируется, как и должно быть.
Это сообщение об ошибке GCC, которое означает возвращаемое значениефункция 'void', но вы пытаетесь присвоить ее непустой переменной.
Ваш конкретный случай: Ваш setNext () , скорее всего, возвращает void, и вы пытаетесь сохранить его возвращаемый результат в переменной, поэтому вы получаете ошибку, которую вы упомянули в этих двух строках кода, которые вы разместили в своей функции rotate:
head_ptr_ = getNodeAt(k)->setNext(head_ptr_);//error here
head_ptr_ = getNodeAt(k-1)->setNext(nullptr);
Вы можете решить проблему двумя способами: 1-е решение: Измените свой код, чтобы он был таким, и примените необходимые изменения, чтобы сохранить ту же логику:
getNodeAt(k)->setNext(head_ptr_);
getNodeAt(k-1)->setNext(nullptr);
2-е решение: Измените функцию setNext () , чтобы она возвращала действительный указатель (не забудьте также изменить объявление метода, чтобы оно возвращало указатель Node ):
template<class T>
Node<T>* LinkedList<T>::setNext(Node<T>* next)
{
// same logic here as before
return ptr; // where ptr is a valid pointer that you want to return
}