求看一下代码问题 链表倒置
程序代码:
#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; }
输出的第一个怎么改都无法倒置,求大神看看给个建议