typedef struct node{
struct node *next;
int data;
}*LinkList,NODE;
LinkList reverseList(LinkList head)
if(head==NULL)
return NULL;
LinkList p,q,L;
q=head;
L=head;
p->next=NULL;
while(L){
L=L->next;
q->next=p;
p=q;
q=L;
}
return p;
}
尾插法(递归)
LinkList reverseListTB(LinkList head){
if(head==NULL)
return NULL;
LinkList p;
if(head->next==NULL){//递归到底
p = head;
return p;
}
p = reverseListTB(head->next);
head->next->next = head;
head->next = NULL;
return p;//返回新的第一个结点
}