设计一个算法,实现将两个循环单链表LA和LB合并为一个循环单链表LA。(函数名已给出,请将代码补充完整
时间: 2023-03-29 14:04:23 浏览: 144
void MergeList(LinkList &LA, LinkList &LB) {
if (LA == NULL || LB == NULL) {
return;
}
LinkList pa = LA->next;
LinkList pb = LB->next;
LinkList pc = LA;
while (pa != LA && pb != LB) {
if (pa->data <= pb->data) {
pc->next = pa;
pc = pa;
pa = pa->next;
} else {
pc->next = pb;
pc = pb;
pb = pb->next;
}
}
pc->next = (pa == LA) ? pb : pa;
LB->next = LB;
}
相关问题
设计一个算法,实现将两个循环单链表LA和LB合并为一个循环单链表LA。(函数名已给出,请将代码补充完整.
void MergeList(LinkList &LA, LinkList &LB) {
// 找到LA的尾节点
LinkList p = LA;
while (p->next != LA) {
p = p->next;
}
// 将LB接到LA的尾部
p->next = LB->next;
// 找到LB的尾节点
while (LB->next != LB) {
LB = LB->next;
}
// 将LA接到LB的尾部
LB->next = LA;
}
用C语言设计一个算法,实现将两个循环单链表LA和LB合并为一个循环单链表LA。(函数名已给出,请将代码补充完整.
void MergeList(CLinkList &LA, CLinkList &LB) {
if (LA == NULL || LB == NULL) {
return;
}
CLNode *p = LA->next;
LA->next = LB->next->next;
LB->next->next = p;
free(LB->next);
LB->next = NULL;
}
阅读全文