perdonatemi il titolo non sò dare un titolo al problema


se serve vi allego tutte le classi, il problema è qui:

codice:
class usoListaNodi{  
  public static void main (String [] args){
    ListaNodi list1 = new ListaNodi();
    ListaNodi list2 = new ListaNodi();
    
    list1.InsertHead(1);
    list1.InsertHead(2);
    list1.InsertHead(3);
    
    list2.printAll();----> e non capisco perché mi stampa il contenuto di list2 (che dovrebbe essere vuoto)  è come se non fossero 2 oggetti differenti
ma se stampo list1 e list2 mi da 2 indirizzi differenti..

se riuscite a risolvere vi ringrazio!! anche se (forse sono pessimista) non credo che troverò il problema