单链表逆置
2015-08-26 09:50
141 查看
<pre name="code" class="cpp">#include<iostream> #include<stdio.h> using namespace std; typedef struct node { int data; struct node *next; }; node *create()//创建单链表 { node *p,*s; int x,cycle=1; node *head = (node*)malloc(sizeof(node)); p = head; while(cycle) { scanf("%d",&x); if(x!=0)//缺点:x=0时,无法输出 { s = (node *)malloc(sizeof(node)); s->data = x; p->next = s; p = s; } else cycle = 0; } head = head->next; p->next = NULL; return head; } node *reverse(node *head)//单链表逆置 { node *reverseHead = NULL; node *pnode = head; node *prev = NULL; while(pnode != NULL) { node *pnext = pnode->next; if(pnext == NULL) reverseHead = pnode; pnode->next = prev; prev = pnode; pnode = pnext; } return reverseHead; } void main() { node *q , *p,*r; q = create(); /*while(q) { printf("%d ",q->data); p = q->next; free(q); q = p; } */ p = reverse(q); while(p)//输出单链表 { printf("%d ",p->data); r = p->next; free(p); p = r; } }
相关文章推荐
- Android Studio 差分升级
- SQL Server order by语句学习回顾
- 保利威视后台设置播放域名黑白名单
- 快速排序
- 采图延时
- JAVA操作Excel文件
- Wall(凸包POJ 1113)
- 经典算法研究系列:二、Dijkstra 算法初探
- iOS 模拟器键盘不能弹出,但是可以使用键盘输入
- Unable to locate \.nuget\NuGet.exe 问题解决办法之一
- Jquery中$.ajax()方法参数详解(转)
- dedecms内容页 上下篇 添加文章描述方法
- Wall(凸包POJ 1113)
- leetcode先刷_Search in Rotated Sorted Array II
- 兼容各大浏览器的event获取
- 安卓游戏机绝成不了气候 却仍可大大成功
- 面试题:检测点是否在扇形之内
- 使 VC2013 编写的程序运行在其它电脑上
- 类的前置声明条件:类的指针,不访问类的定义;类的声明和类的指针声明
- Google编码规范