怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)
/*
6.怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)?
*/
ListNode* ReverseList(ListNode* head)
{
if(head==NULL)
return NULL;
if(head->next==NULL)
return head;
ListNode *p=head;
ListNode *q=head->next;
while(q!=NULL)
{
ListNode *s=q->next;
q->next=p;
p=q;
q=s;
}
head->next=NULL;
return p;
}
void ReverseListTest()
{
cout<<"make a list , input values "<<endl;
ListNode* head=NULL;
MakeList(head);
cout<<"the list : ";
ShowList(head);
cout<<"after reverse : ";
head=ReverseList(head);
ShowList(head);
}