题目描述
建立长度为n的单链表,然后将其数据元素逆置,即第1个元素变为最后一个元素,第2个元素变为倒数第2个元素,以此类推,最后一个元素变为第1个元素。(处理的数据类型为字符型。必须使用链表完成。)
输入
第一行为链表长度n;
第二行为链表中的n个数据元素的值。
输出
逆置后的原始的值。
样例输入
10
ABCDEFGHIJ
样例输出
J I H G F E D C B A
#include<stdio.h>
#include<malloc.h>
using namespace std;
typedef struct LNode
{
char data;
struct LNode*next;
}LinkNode;
int main()
{
LinkNode*L,*s;
L=(LinkNode*)malloc(sizeof(LinkNode));
L->next=NULL;
int n;
scanf("%d",&n);
getchar();//接收换行符
char datas;
//头插法的数据是从后往前装的
//输出时的书序是逆序
for(int i=0;i<n;i++)//头插法
{
s=(LinkNode*)malloc(sizeof(LinkNode));
scanf("%c",&datas);
s->data=datas;
s->next=L->next;
L->next=s;
}
L=L->next;//把L移动到第一个结点
while(L!=NULL)
{
printf("%c ",L->data);
L=L->next;
}
}