单链表 (扩展问题):给定一个链表的头指针,要求只遍历一次,将单链表中的元素的顺序翻转过来。
//头插法,额外增加三个指针。
void ReverseLinkList(LinkList& Head)
{
LinkList p,r,temp;
p=Head->Next;
temp=p;
r=p->Next;
while(r)
{
p=r;
r=r->Next;
p->Next=Head->Next;
Head->Next=p;
}
temp->Next=NULL;
}
int main()
{
LinkList head=(LinkList)malloc(sizeof(Node));
head->Next=NULL;
head=InitLinkList(9,head);
TraverseLinkList(head);
ReverseLinkList(head);
cout<<endl;
TraverseLinkList(head);
return 0;
}