链表反转
2015-09-26 01:34
337 查看
#include<stdio.h>
#include<stdlib.h>
typedef struct linklist
{
int data;
struct linklist * next;
}node,*link;
void CreatRear(link &l,int m)
{
l=(link)malloc(sizeof(node));
link r=l;
for(int i=0;i<m;i++)
{
link p=(link)malloc(sizeof(node));
p->data=i;
r->next=p;
r=p;
}
r->next=NULL;
}
void reverse(link &l)
{
link p,m,r;
p=l->next;
m=p->next;
if(m)
return;
r=m->next;
p->next=NULL;
while(r)
{
m->next=p;
p=m;
m=r;
r=r->next;
}
m->next=p;
l->next=m;
}
void out(link l)
{
l=l->next;
while(l)
{
printf("%d ",l->data);
l=l->next;
}
printf("\n");
}
int main()
{
link l;
CreatRear(l,1);
//reverse(l);
out(l);
}
#include<stdlib.h>
typedef struct linklist
{
int data;
struct linklist * next;
}node,*link;
void CreatRear(link &l,int m)
{
l=(link)malloc(sizeof(node));
link r=l;
for(int i=0;i<m;i++)
{
link p=(link)malloc(sizeof(node));
p->data=i;
r->next=p;
r=p;
}
r->next=NULL;
}
void reverse(link &l)
{
link p,m,r;
p=l->next;
m=p->next;
if(m)
return;
r=m->next;
p->next=NULL;
while(r)
{
m->next=p;
p=m;
m=r;
r=r->next;
}
m->next=p;
l->next=m;
}
void out(link l)
{
l=l->next;
while(l)
{
printf("%d ",l->data);
l=l->next;
}
printf("\n");
}
int main()
{
link l;
CreatRear(l,1);
//reverse(l);
out(l);
}
相关文章推荐
- Dijkstra算法
- 软件设计师&产品经理应常去的网站
- C++ | 段错误
- c++设计模式----迭代器模式iterator
- Cocos2d-x Lua 初步
- 为什么会有缓冲区溢出攻击专栏
- 《幸运大转盘》代码分享
- awakeFromNib与viewDidLoad的区别
- hdoj5120Intersection【求圆相交的面积】
- 3个线程顺序打印ABC10次
- POJ 2311 Cutting Game
- 链表的多项式加法链表的多项式加法
- Eclipse中servlet显示无法导入javax.servlet包问题的解决方案
- 进程与线程的区别与联系
- eclipse中server location灰色,如何修改?
- 2013 Asia Regional Changchun
- UVa1149 - Bin Packing
- C++ | RAII 机制
- [贪心算法]UVa1610 - Party Games
- docker 获取容器获取的时间不是本地时间,解决办法