почему последний узел в рекурсивной обратной последовательности связанного списка всегда один и тот же - PullRequest
0 голосов
/ 31 января 2019

в данном коде почему остальные одинаковы во всех областях. Я думаю, это должно быть так же, как first-> next..Я создал 3-элементный связанный список и передал головной узел в обратной функции

void reverse(struct Node **head){
     struct Node* first = NULL,*rest=NULL;
     if(*head == NULL)return;
     first = *head;
     rest = first->next;
     printf("%x   %x\n",first,rest);

     if(rest == NULL)return;
     reverse(&rest);

     printf("%x   %x  %x   \n",first,first->next,rest);
     first->next->next = first;
     first->next = NULL;
     *head = rest;
}

6615c8   6615f8
6615f8   661608
661608   0


6615f8   661608  661608
6615c8   6615f8  661608

Вывод, приведенный здесь, является printf только для этой функции. И этот вывод для связанного списка из 3 элементов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...