①不改变链表的结构(利用递归的本质是利用栈)
void Reve_list(listnode* phead)
{
if(phead!=NULL)
{
if(phead->next!=NULL)
{
Reve_list(phead->next);
}
printf("%d\t",phead->value);
}
}
②改变链表的结构(反转链表)(利用两个 空指针)
listnode* Reve_list(listnode * phead)
{
nodelist* root=phead;
nodelist* pre=NULL;
nodelist* next=NULL;
if(phead==NULL)
return NULL;
while(root->next!=NULL)
{
next=root->next;
root->next=pre;
pre=root;
root=next;
}
root->next=pre;
return root;
}