//合并链表 求交集
LinkList Union(LinkList &la,LinkList &lb)
{
pa=la->next;
pb=lb->next;
pc=la;
while(pa&&pb)
{
if(pa->data==pb->data)
{
pc->next=pa;
pc=pa;
pa=pa->next;
q=pb;
pb=pb->next;
free(q);
}
else if(pa->data<pb->data)
{
q=pa;
pa=pa->next;
free(q);
}
else
{
q=pb;
pb=pb->next;
free(q);
}
}
while(pa)
{
q=pa;
pa=pa->next;
free(q);
}
while(pb)
{
q=pb;
pb=pb->next;
free(q);
}
pc->next=NULL;
free(lb);
return lc; //空间复杂度1,时间l1+l2
}
求链表交集
链表操作:合并并找到交集
最新推荐文章于 2022-07-05 10:57:07 发布
该博客介绍了一个C语言实现的函数LinkListUnion,用于合并两个链表并找到它们的交集,同时不破坏原有的链表A和B。在合并过程中,如果节点数据相同,则保留并更新指针;若数据不同,则根据大小删除相应节点。最终返回合并后的链表C,其长度等于A和B的元素之和减去不重复的元素数量。
3836

被折叠的 条评论
为什么被折叠?



