C语言链表头插法逆向输出
输入:1 2 3 4 5 -1
输出:5 4 3 2 1
此题考查头链表的创建之一 :头插法。所谓头插法是从一个空链表开始,重复读入数据,生成新结点,将读入的数据存放新结点的数据域中,然后讲新结点插入到当前链表的头结点之后,直至读入结束标志为止。
#include <stdio.h>
#include <stdlib.h>
typedef struct Node
{
int data ;
struct Node * pNext ;
}* PNODE ,NODE ;
PNODE creat_list(void) ;
void show_list(PNODE phead) ;
int main()
{
PNODE phead = NULL ;
phead = creat_list() ;
show_list(phead) ;
return 0 ;
}
PNODE creat_list(void)
{
int val;
PNODE phead = (PNODE)malloc(sizeof(NODE)) ; //为头指针开辟内存空间
phead->pNext = NULL ; //初始化空链表
// PNODE pNew =NULL ;//初始化新结点
while(1)
{
scanf("%d",&val);
if(val<0 ) break ;
PNODE pNew =(PNODE)malloc(sizeof(NODE)) ; //// 为新结点开辟内存空间
pNew->data = val ;
pNew->pNext = phead->pNext ;//! 将头指针所指向的下一个结点的地址,赋给新创建结点的next
phead->pNext = pNew ; //!把新结点挂到头结点后面(插入)
}
return phead ;
}
void show_list(PNODE phead)
{
PNODE p = phead->pNext ;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->pNext ;
}
printf("\n");
}
最新文章
- mysql备份文件注释乱码处理工具
- ubuntu安装遇到的问题
- (easy)LeetCode 228.Summary Ranges
- github--新手使用错误分析
- Android开发之查看应用包名package和入口activity名称的方法
- Media Formatters媒体格式化器
- ELF文件格式分析--结构篇
- 微端启动器LAUNCHER的制作之MFC版二(下载)
- springmvc实现视频上传+进度条
- 剑指offer 6.查找和排序 旋转数组的最小数字
- LeetCode:114_Flatten Binary Tree to Linked List | 将一棵二叉树变成链表的形式 | Medium
- Apollo的Oracle适配
- 源码编译安装mysql5.5.33
- android 6.0 动态权限
- saltstack之混合匹配
- Python练习-迭代器-模拟cat|grep文件
- 空洞卷积(dilated Convolution) 与感受野(Receptive Field)
- jni java C/C++ 相互调用
- python学习——练习题(11)
- 成都Uber优步司机奖励政策(4月5日)