c语言单链表求交集输出重复数值

img

当链表中有重复数值时输出交集时也会有重复数值
这怎么改

#include "slnklist.h"
linklist interSection(linklist L1,linklist L2)
 {
     linklist p,q;
    linklist head=(linklist)malloc(sizeof(Lnode));
    linklist tmp = head, s;
    tmp->next = NULL;
    linklist p1 = L1->next, p2 = L2->next;
    while (p1 != NULL)
    {
        while (p2 != NULL)
        {
            if (p2->data == p1->data)
            {
                s = (linklist)malloc(sizeof(Lnode));
                s->data = p1->data;
                s->next = NULL;
                tmp->next = s;
                tmp = s;
                break;
            }
            p2 = p2->next;
        }
 
        p1 = p1->next;
        p2 = L2->next;
    }
        return head;
 }
 main()
 {
     linklist La,Lb;
     linklist INS;
    La=creatbyqueue();
    Lb=creatbyqueue();
    INS=interSection(La,Lb);
    printf("intersection:");
    print(INS);
 } 
 

```c


```

完成了的

交集是俩个集合相同的一部分,可以用俩个嵌套循环,也可以用动态规划,动态规划复杂度比循环低点