Would you help me with this code? I am trying to find the intersection of two linked lists. List 1 contains 42,32,54,58,96,17. List 2 contains 17,31,42,32,3,13. This is for my data structures class. I just need a hint. So far I have tried to write FOR loops. I was told to write it in a similar fashion to another loop in the assignment but it does not work. Instead of giving the intersection output which is 32,42,17 it just gives me a combination of the lists numbers. 

```
 template <class Type>
void listDifference(linkedListType<Type>& difference,
                    linkedListType<Type>& list1,
                    linkedListType<Type>& list2)
{
    linkedListIterator<int> itr1;                 
    linkedListIterator<int> itr2;                 

    for (itr1 = list1.begin(); itr1 != list1.end(); ++itr1)   
    {
       // Add the each element in list 1 to the difference list
       difference.insertLast(*itr1);

       for (itr2 = list2.begin(); itr2 != list2.end(); ++itr2)
       {
          if (*itr1 == *itr2)
          {
              // If the node is in both lists delete the node from the
              // difference list.
              difference.deleteNode(*itr1);
          }
       }
    }
}

template <class Type>
void listIntersection(linkedListType<Type>& intersection,
                      linkedListType<Type>& list1,
                      linkedListType<Type>& list2)

{
   linkedListIterator<int> itr1;                 
   linkedListIterator<int> itr2; 

    for (itr1 = list1.begin(); itr1 != list1.end(); ++itr1)
    { 
        intersection.insertLast(*itr1);
            //add each element of list 1 to the insertion list

        for (itr2 = list2.begin(); itr2 != list2.end(); ++itr2)
        {
            if (*itr1!=*itr2)
            {// if node in list 1 is not the same as in list 2 delete the node
                intersection.deleteNode (*itr1);
            }
        }
    }
}

```