属于链表的基本操作,用一个循环搞定。
下面用一个结构简单的存整数的链表演示。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct List
{
int val;
List *Next;
};
List *L;
int n=0;
List *pushin(List *l,int *a)
{
if(n==6)
return l;
l=new List;
l->Next=NULL;
n++;
l->val=*a;
l->Next=pushin(l->Next,++a);
return l;
}
void print(List *l)
{
if(l==NULL)
return;
printf("%d ",l->val);
print(l->Next);
}
List *fan(List *l)
{
List *l2,*l3;
l2=l->Next;//存第二个
l->Next=NULL;
while(l2)
{
l3=l2->Next;//存第三个
l2->Next=l;//第二个指向第一个
l=l2;
l2=l3;
}
return l;
}
int main()
{
int a[6]= {3,5,7,9,13,25};
L=pushin(L,a);
print(L);
L=fan(L);
print(L);
return 0;
}