Следующий код отлично работает, когда голова отправляется в качестве параметра к нему. Поскольку я новичок в C, я не мог понять, как это работает. Помогите мне пожалуйста.
struct node *recursiveReverseLL(struct node *list)
{
struct node *revHead;
if (list == NULL || list->link == NULL)
{
return list;
}
revHead = recursiveReverseLL(list->link);
list->link->link = list;
list->link = NULL;
return revHead;
}
Я не знаю, как ссылки предоставляются с использованием этих рекурсивных вызовов. т.е.), если ссылки равны,
1 -> 2 -> 3 -> 4
тогда hw изменяется, как,
4 -> 3 -> 2 -> 1