求看一下代码问题 链表倒置
程序代码:#include <stdio.h>
#include<stdlib.h>
typedef struct Node
{
int data;
struct Node* next;
}Node;
Node *head=NULL;
void add(int num)
{
Node *t;
t=(Node*)malloc(sizeof(Node));
t->data=num;
t->next=head;
head=t;
}
void printlist(Node *n)
{
Node *p=n;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
}
void daozhi(Node *&t)
{
Node *p, *tmp;
t=head;
p=t->next;
tmp=p->next;
p->next=NULL;
t->next=p;
p=tmp;
while (p!=NULL)
{
tmp=p->next;
p->next=t->next;
t->next=p;
p=tmp;
}
}
int main()
{
Node *t;
int i=0;
for(i=0;i<10;i++)
{
add(i);
}
printlist(head);
printf("\n");
daozhi(t);
printlist(head);
return 0;
}
输出的第一个怎么改都无法倒置,求大神看看给个建议









