设A和B是两个单链表其表中元素递增有序试写一算法将A和B归并成一个按元素值递减有序的单链表C并要求辅助空间为O(1)

来源:学生作业帮助网 编辑:作业帮 时间:2024/06/16 04:14:35
设A和B是两个单链表其表中元素递增有序试写一算法将A和B归并成一个按元素值递减有序的单链表C并要求辅助空间为O(1)
xS]KP+DVFsM(2 +"*"2HDfg 7>f?kGY[S4}$j.Ao Uv5hk?;G u!7GGzꨍ=wˎ/æ M-P4AЄbH) irjN";-;rwA$ ÉbvP9af6J#(+</&u^!r ]:B(ls 3]/(> ;:ૠ.Oe ~_ޗ&,l7na-iB i L,8~'.

设A和B是两个单链表其表中元素递增有序试写一算法将A和B归并成一个按元素值递减有序的单链表C并要求辅助空间为O(1)
设A和B是两个单链表其表中元素递增有序试写一算法将A和B归并成一个按元素值递减有序的单链表C并要求辅
助空间为O(1)

设A和B是两个单链表其表中元素递增有序试写一算法将A和B归并成一个按元素值递减有序的单链表C并要求辅助空间为O(1)
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;
}