Вот эта часть:
LIST *start = head;
Параметром для функции является указатель на постоянную, const LIST *head
;это означает, что вы не можете изменить то, на что оно указывает.Тем не менее, указатель выше является неконстантным;Вы можете разыменовать его и изменить его.
Также должно быть const
:
const LIST *start = head;
То же самое относится и к вашему типу возврата.
Все, что говорит компилятор: «Эй, вы сказали вызывающей стороне:« Я ничего не изменю », но вы открываете возможности для этого».