У меня возникают проблемы с пониманием, почему temp
меняет свое значение с 9 на 1 после выражения:
last->data = (*head_ref)->data;
Моя текущая цель - обратить данные в первом и последнем узле связанного узла.список, содержащий 1, 3, 5, 7 и 9.
Результат, который я получаю, равен 9, 3, 5, 7, 9.
Если temp
равно последнемучто равно head_ref
, изменится ли последний эффект temp
, хотя я не установил temp = last
после изменения последнего?
void reverseNode(struct Node** head_ref)
{
struct Node *last = *head_ref;
while(last->next != NULL)
{
last = last->next;
}
struct Node *temp = last;
printf("%d ", temp->data); // temp->data = 9
last->data = (*head_ref)->data;
printf("%d ", temp->data); // temp->data = 1
(*head_ref)->data = temp->data;
}
Спасибо!