typedef struct ListNode
{
int data;
struct ListNode *next;
}List;
List * reverlist(List *p,List **head)
{
if(p->next == NULL)
{
*head = p;
return p;
}
List *before;
before = reverlist(p->next,head);
before->next = p;
return p;
}
int main()
{
List *p,*head,*rhead,*rtail;//head为原来表的头指针,rhead为反转之后表的头指针,rtail为反转之后表的尾指针
rtail = reverlist(head,&rhead);
rtail->next = NULL;
for(p = rhead;p != NULL;p = p->next)
printf("%d ",p->data);
printf("\n");
return 0;
}