/*
已知3个带头结点的线性链表A,B,C中的结点均依元素值自小至大非递减排列(
可能存在两个或两个以上值相同的结点),编写算法对链表A进行如下操作:
使操作后的链表A中仅留下3个表中均包含的数据元素的结点,且没有值相同的结
点,并释放所有无用结点。限定算法的时间复杂度为O(m+n+p),其中m,n和p
分别为三个表的长度。
*/
typedef struct LNode{
int data;
struct LNode *next;
}*Linkedlist;
LinkedList Common(Linkedlist A,B,C){
Linkedlist *pa,*pb,*pc,*pre,*u;
pa=A->next;
pb=B->next;
pc=C->next;
pre=A;
while(pa&&pb&&pc){
while(pa&&pb)
{
if(pa->data<pb->data)
{
u=pa;
pa=pa->next;
free(u);
}
else if(pa->data>pb->data)
{
已知3个带头结点的线性链表A,B,C中的结点均依元素值自小至大非递减排列(可能存在两个或两个以上值相同的结点),编写算法对链表A进行如下操作:使操作后的链表A中仅留下3个表中均包含的数据元素的结点
最新推荐文章于 2023-04-11 00:16:10 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)