Iknow java is passed by value. For linked list data structure, what is the difference between method size() and size1()? I think there are the same becasue the head and next reference point to the same thing in size1(). but the result is difference
public class IntList {
int item;
IntList next; 
public  IntList(int item, IntList next){
    this.item = item;
    this.next = next;
}
public int size(){
    int size = 1;
    while (next !=null){
        size++;
        next = next.next;
    }
    return size;
}
public int size1(){
    int size = 1;
    IntList head = next;
    while (head != null){
        size++;
        head = head.next;
    }
    return size;
}
public static void main(String[] args) {
    IntList L = new IntList(1,null);
    L = new IntList(2,L); 
    L = new IntList(3,L);
    L = new IntList(10,L);
    L = new IntList(20,L);
    System.out.println(L.size());
}
}
I am confused about the reference means in java.
 
     
    
