L指向开始节点,利用递归倒序输出L中的值域
- #include<stdio.h>
- #include<stdlib.h>
- typedef struct LNode
- {
- int data;
- struct LNode *next;
- }LNode;
- void saveListnext(LNode *&L,int x[])
- {
- L=(LNode *)malloc(sizeof(LNode));
- L->next=NULL;
-
- LNode *q,*s;
- q=L;
- for(int i=0;i<10;i++)
- {
- s=(LNode *)malloc(sizeof(LNode));
- s->data=x[i];
-
- q->next=s;
- q=s;
- }
- q->next = NULL;
- }
- void printList(LNode *L)
- {
- LNode *q;
- q=L->next;
- int i=0;
- while(q!=NULL)
- {
- if(i++)
- putchar(' ');
- printf("%d",q->data);
- q=q->next;
- }
- printf("\n");
- }
- void reprint(LNode *L)
- {
- if(L!=NULL)
- {
- reprint(L->next);
- printf("%d ",L->data);
- }
- }
- int main (void)
- {
- LNode *L;
- int x[10]={1,2,3,4,5,6,7,8,9,10};
- saveListnext(L,x);
- printList(L);
- reprint(L->next);
- return 0;
- }