#include<stdio.h>#include<stdlib.h>#defineN9typedefstructnode{intdata;structnode*next;}ElemSN;ElemSN*Createlink(inta[],intn){inti;ElemSN*h=NULL,*p;for(i=N-1;i>=0;i--){p=(ElemSN*)malloc(sizeof(ElemSN));p->data=a[i];p->next=h;h=p;}returnh;}ElemSN*In_reverseList(ElemSN*H){ElemSN*newHead;if(H==NULL||H->next==NULL)//链表为空直接返回,而H->next为空是递归基returnH;newHead=In_reverseList(H->next);//一直循环到链尾H->next->next=H;//翻转链表的指向H->next=NULL;//记得赋值NULL,防止链表错乱returnnewHead;//新链表头永远指向的是原链表的链尾}voidprintlink(ElemSN*h){ElemSN*p;for(p=h;p;p=p->next)printf("%d\n",p->data);}intmain(void){inta[N]={1,2,3,4,5,6,7,8,9};ElemSN*head;head=Createlink(a,9);printlink(In_reverseList(head));}