用c语言将两个不带头结点的有序单链表LA和LB的合并,请合并到LA表中再输出,LB表的空间全部释放
时间: 2024-06-13 09:04:37 浏览: 86
数据结构链表的合并操作
将两个有序单链表LA和LB合并到LA中,可以采用归并排序的思想,从头到尾依次比较LA和LB中的元素大小,将较小的元素插入到LA中。如果LA中已经存在该元素,则跳过该元素。最后将LB表的空间全部释放即可。
以下是C语言代码实现:
```c
void mergeList(LinkList *LA, LinkList *LB) {
LinkList pa = (*LA)->next;
LinkList pb = (*LB)->next;
LinkList pc = *LA;
while (pa && pb) {
if (pa->data <= pb->data) {
pc->next = pa;
pc = pa;
pa = pa->next;
} else {
if (pa->data != pb->data) {
pc->next = pb;
pc = pb;
}
pb = pb->next;
}
}
pc->next = pa ? pa : pb;
free(*LB);
}
```
阅读全文