链表的逆置
1.先建立结构体,建立链表等。然后就是让链表逆置代码:
#include "com_def.h" #include "def.h" typedef struct LNode{ ElemType data; struct LNode *next; }LNode,*LinkList; LinkList Init_L(int n) { LinkList L=(LinkList)malloc(sizeof(LNode)); LinkList p=L; int x; printf("请输入链表元素:"); for(int i=0;i<n;i++) { LinkList e=(LinkList)malloc(sizeof(LNode)); scanf("%d",&x); e->data=x; p->next=e; p=e; } p->next=NULL; L=L->next; } void ListReverse(LinkList &L){ LinkList p,q; p=L; L=NULL; while(p){ q=p; p=p->next; q->next=L; L=q; } } int main() { int n; LinkList L; printf("请输入链表元素个数:"); scanf("%d",&n); L=Init_L(n); ListReverse(L); while(L) { printf("%d ",L->data); L=L->next; } }
2.详解:
先让p指针指向L,L指向NULL,然后让q指针指向p,而p指向p->next;q->next指向L,最后让L指向p



浙公网安备 33010602011771号