如何将两个有序链表并为一个有序链表?

你给我回答的那个问题,我看不太懂能不能分步解释一下。我是初学者,希望帮助一下。谢谢。... 你给我回答的那个问题,我看不太懂 能不能分步解释一下。我是初学者,希望帮助一下。谢谢。 展开
 我来答
yun202302
2013-09-29 · TA获得超过566个赞
知道小有建树答主
回答量:297
采纳率:0%
帮助的人:251万
展开全部

有两个链表;分别存放的数据是:

2 4 7 8

1 5 6

设置两个指针i和j,分别指向两个链表的表头;

现在j指向的数据1较小,就把1保存到一个新链表中,用k指向;

那j再指向下一个数5,再和i比较;

i指向的数2较小,就把2保存到新链表中,放到原来k指向的后面,并用k指向它;

i再指向下一个数4;依次类推

如果哪一个链表没数据了,就把另一个链表的数全部链到新链表中

追问
意思我能理解 但是代码我写不出来。。
追答
node *mergelink(node *p, node *q)
{
node *h, *r;
h = (node*) malloc (sizeof(node));
h->next = NULL;
r = h;
while (p != NULL && q != NULL)
{
if (p->data data)
{
r->next = p;
r = p;
p = p->next;
}
else
{
r->next = q;
r = q;
q = q->next;
}
}

if (p == NULL)
r->next = q;
if (q == NULL)
r->next = p;

p = h->next;
h = h->next;
free(p);
return h;
}
陈明龙350
2013-09-29
知道答主
回答量:25
采纳率:0%
帮助的人:6.1万
展开全部
先创建一个有序的List,list.add()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式