在给定的代码中,为什么在每个范围内都是相同的。我想它应该与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个元素的链表