class List // I want to use 1 prgram file for this example { int value; List next; } public class demo { public static void main(String[] args) { List head = null; // Empty list List p; /* ------------------------------------------------- Create a list element and insert in List at head ------------------------------------------------- */ for( int i=1; i <= 10; i++ ) { p = new List( ); p.value = i; head = insert(head, p); // Insert p in head print(head); } } /* ========================================= insert(h, e): insert e at tail of list h return new list A List variable is a reference variable !!! ========================================= */ public static List insert( List head, List e ) { /* -------------------------------------------- Base case: insert at the tail of an empty -------------------------------------------- */ if ( head == null ) { e.next = null; // Mark e as the last list elem return(e); // e is the first list elem ! } else { /* =========================================================== Solve the problem USING the solution of a smaller problem =========================================================== */ head.next = insert( head.next, e ); // Link directly to helpSol return head; // Return MY solution } } // Print the list public static void print(List h) { while (h != null) { System.out.printf("%d ", h.value); h = h.next; } System.out.printf("\n\n"); } }