#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
typedef struct ListTag{
ElemType data;
struct ListTag * next;
}List, * PtList;
void InitList(PtList ptlist);
void show(PtList ptlist);
PtList reversed(PtList ptlist);
int main()
{
List list, *head;
head = &list;
list.data = 0;
list.next = NULL;
InitList(head);
show(head);
show(reversed(head));
return 0;
}
void InitList(PtList ptlist)
{
PtList new_plist;
ElemType origindata[9] = {1,2,3,4,5,6,7,8,9};
unsigned int len = sizeof(origindata)/sizeof(ElemType);
for(int i=0; i<len; i++)
{
new_plist = (PtList)malloc(sizeof(List));
if(!new_plist)
exit(1);
new_plist->data = origindata[i];
ptlist->next = new_plist;
ptlist = new_plist;
}
ptlist->next = NULL;
}
void show(PtList ptlist)
{
while(ptlist)
{
printf("%d -> ", ptlist->data);
ptlist = ptlist->next;
}
printf("NULL");
putchar('\n');
}
PtList reversed(PtList phead)
{
if(phead==NULL || phead->next==NULL)
exit(1);
PtList pre = phead;
PtList cur = phead->next;
PtList next;
pre->next = NULL;
while(cur != NULL)
{
next = cur-> next;
cur->next = pre;
pre = cur;
cur = next;
}
return pre;
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步