合并有序链表
2016-03-30 19:54
148 查看
对两个有序链表进行合并
通过两个链表的头结点的比较,将它们中的一个加入到新的链表中来。
Node * merge(Node *one ,Node *two)
{
if(one==NULL&&two==NULL)
return NULL;
Node *p=one;
Node *q=two;
Node *m=NULL;
if(p->data<q->data)
{
m=p;
p=p->next;
}
else
{
m=q;
q=q->next;
}
Node *head=m;
//m是一个头指针。
while(p&&q)//
{
if(p->data<q->data)
{
m->next=p;
m=p;
p=p->next;
}
else
{
m->next=q;
m=q;
q=q->next;
}
}
if(p)
m->next=p;
if(q)
m->next=q;
return head;
}
通过两个链表的头结点的比较,将它们中的一个加入到新的链表中来。
Node * merge(Node *one ,Node *two)
{
if(one==NULL&&two==NULL)
return NULL;
Node *p=one;
Node *q=two;
Node *m=NULL;
if(p->data<q->data)
{
m=p;
p=p->next;
}
else
{
m=q;
q=q->next;
}
Node *head=m;
//m是一个头指针。
while(p&&q)//
{
if(p->data<q->data)
{
m->next=p;
m=p;
p=p->next;
}
else
{
m->next=q;
m=q;
q=q->next;
}
}
if(p)
m->next=p;
if(q)
m->next=q;
return head;
}
相关文章推荐
- 初学用HashMap输出
- mvc模式 学生管理系统
- 英伟达硬件加速解码器在 FFMPEG 中的使用
- 第4周项目5-用递归方法求解2
- 安装Bcache中遇到的问题记录
- 存储过程和函数的区别
- android 图像渲染(Shader)
- 南阳题目206-矩形的个数
- css3 字体旋转
- [linux basic基础]----套接字
- [置顶] 视频转gif图片格式-好用的软件
- LevelDb
- java之awt防抖
- LevelDb
- 设计模式:模板方法模式(Template Method)
- java关键字final,finally,finalize
- 27.二重指针和二维数组
- 设计模式:模板方法模式(Template Method)
- 第二次作业
- 复利计算单元测试