链表的就地逆置
#include <iostream> using namespace std; /*结构体*/ typedef struct LNode { int data; struct LNode *next; }LNode,*linklist; void reverse(linklist &L){ //逆向输出函数 linklist p,q; p=L->next; L->next=NULL; while (p!=NULL) { q=p->next; p->next=L; L=p; p=q; } p=L; while (p!=NULL) { cout<<p->data; p=p->next; } } int main(){ linklist L,p,q; p=L=new LNode; for (int i=1;i<=5;i++) { cin>>p->data; q=new LNode; if (i==5) { p->next=NULL; }else{ p->next=q; p=q; } } reverse(L); return 0; }