这是一道牛客网上的填空题
void difference(PNode* LA, PNode LB)
{
PNode pa = *LA;
PNode pre = NULL;
PNode pb = LB;
PNode p = NULL;
while (pa)
{
pb = LB;
while (pb&&pa->data != pb->data)//数据不相等,pb继续往后遍历,直到为空
{
pb = pb->next;
}
if (pb == NULL)
{
pre = pa;//A中不含有B中的第一个元素
pa = pa->next;//继续比较A的第二个元素
}
else//pa->data == pb->data
{
if (pa == *LA)
{
*LA = pa->next;
}
else
{
pre->next = pa->next;
}
p = pa;
pa = pa->next;
free(p);
}
}
}
本文介绍了一种链表差集算法的具体实现过程,通过两个链表的数据对比,删除第一个链表中与第二个链表相同的数据节点,最终实现了两个链表的差集运算。

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



