#include <stdio.h>
#include <stdlib.h>

struct nodoLista {
    int valore;
    struct nodoLista *nextPtr;
};

typedef struct nodoLista Lista;

void suf_insert(Lista **ptrPtr, int val);
void print_list(Lista *ptr);
void intersection(Lista *list1, Lista *list2, Lista **destPtr);

int main() {
    Lista *l1 = NULL, *l2 = NULL;
    
    suf_insert(&l1, 9);
    suf_insert(&l1, 5);
    suf_insert(&l1, 11);
    suf_insert(&l1, 42);
    suf_insert(&l1, 7);
    print_list(l1);

    suf_insert(&l2, 7);
    suf_insert(&l2, 13);
    suf_insert(&l2, 22);
    suf_insert(&l2, 5);
    print_list(l2);
    
    Lista *l3 = NULL;
   intersection(l1, l2, &l3);
   print_list(l3);
    
    return 0;
}

void suf_insert(Lista **ptrPtr, int val) {
    while(*ptrPtr != NULL) {
        ptrPtr = &((*ptrPtr)->nextPtr);
    }
    Lista *tmpPtr = *ptrPtr;
    *ptrPtr = malloc(sizeof(Lista));
    (*ptrPtr)->valore = val;
    (*ptrPtr)->nextPtr = tmpPtr;
}

void print_list(Lista *ptr) {
    while(ptr != NULL) {
        printf("%d ", ptr->valore);
        ptr = ptr->nextPtr;
    }
    printf("\n");
}

void intersection(Lista *list1, Lista *list2, Lista **destPtr) {
//Bisogna guardare quali valori delle due liste si ripetono tra di loro e metterli nella nuova lista destPtr
    Lista *temp;
    temp = list2; //Si fa questa variabile per poi tornare a puntare all'inizio per scorrere di nuovo ogni valore di list2
    while(list1 != NULL) {
        while(list2 != NULL){
            if (list1->valore == list2->valore){
               suf_insert(destPtr, list1->valore); //Basta usare inserimento in testa usato prima per mettere in l3
            }
        list2 = list2->nextPtr; //Aggiorno L2 ad ogni ciclo, così eventualmente arriva a NULL
        }
    list1 = list1->nextPtr; //Aggiorno L1 ad ogni ciclo, così eventualmente arriva a NULL
    list2 = temp; //Riaggiorno L2 ad ogni ciclo di L1, così per ogni valore di L1 scorre tutto L2
    }
    
    
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: