#include <iostream>
#include <cstdio>
using namespace std;
struct ListNode
{
int data;
struct ListNode *next;
};
int main()
{
int t,i;
ListNode *pHead = new ListNode;
ListNode *p, *q;
pHead->next = NULL;
while(scanf("%d",&t)!=EOF)
{
p = pHead;
for(i=0; i<t; ++i)
{
q = new ListNode;
q->next = NULL;
scanf("%d",&(q->data));
p->next = q;
p = q;
}
if(!pHead->next)
{
printf("NULL\n");
}
else
{
p = pHead;
q = p->next;
pHead->next = NULL;
while(q)
{
p = q;
q = p->next;
p->next = pHead->next;
pHead->next = p;
}
p = pHead->next;
printf("%d", p->data);
p = p->next;
while(p)
{
printf(" %d", p->data);
p = p->next;
}
printf("\n");
p = pHead->next;
q = p->next;
while(q)
{
delete p;
p = q;
q = p->next;
}
delete p;
}
pHead->next = NULL;
}
return 0;
}
链表的题目虽然算法很常规,,但是要一次性不出错做下来还是不容易啊!总是会犯低级错误……

本文提供了一个使用C++实现的链表逆序输出的示例代码。通过动态创建链表节点并根据输入数据填充链表,最后逆序输出链表的所有元素。此程序展示了链表的基本操作和逆序输出的具体步骤。
2517

被折叠的 条评论
为什么被折叠?



