逆序打印單鏈表(遞歸)

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;

typedef struct LNode{
  int data;
  struct LNode *next;
}LNode;

void create(LNode *&A,int n) //創建鏈表
{
    int i,a[30];
    LNode *s,*r;
    A=(LNode *)malloc(sizeof(LNode));
    A->next=NULL;
    r=A;
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
        s=(LNode *)malloc(sizeof(LNode));
        s->data=a[i];
        r->next=s;
        r=r->next;
    }
    r->next=NULL;
}
 


void reprint(LNode *A)
{
    if(A!=NULL)
    {
        reprint(A->next);
        printf("%d ",A->data);

    }
}
int main()
{
    LNode *A,*B;
    int n;
    scanf("%d",&n);
    create(A,n);
    reprint(A->next);
    return 0;
}
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章