История изменений
Исправление rymis, (текущая версия) :
Если первый кусок кода менять нельзя, то только так:
struct Node* revert_list_real(struct Node* list_head);
#define revert_list(lst) \
do { lst = revert_list_real(lst); } while(0)
Но так делать в жизни не стоит.
Или можно менять элементы, а не указатели, но это требует O(n) памяти если список однонаправленный.
Исходная версия rymis, :
Если первый кусок кода менять нельзя, то только так:
struct Node* revert_list_real(struct Node* list_head);
#define revert_list(lst) \
do { lst = revert_list_real(lst); } while(0)
Но так делать в жизни не стоит.