// List.java public class List { // Referência para o primeiro elemento private Node first; /* Node A lista usa esta classe interna. Cada nodo contém uma informação e referência para o próximo nodo. */ private static class Node { Node next; int data; Node( int newData ) { next = null; data = newData; } } /* Cria uma lista vazia, ou seja, uma referência nula. */ public List() { first = null; } /* Destroi uma lista chamando um método interno */ public void clear( ) { first = clear( first ); } /* Método interno para destruição */ private Node clear( Node node ) { if ( node != null ) node.next = clear( node.next ); return null; } /* Inserção. Usa o método auxiliar */ public void insert( int data ) { first = insert( data, first ); } /* Inserção recursiva. */ private Node insert( int data, Node node ) { if ( node == null ) return new Node( data ); node.next = insert( data, node.next ); return node; } public void print( ) { print( first ); System.out.println( "\n" ); } private void print( Node node ) { if ( node == null ) return; System.out.print( node.data + " " ); print( node.next ); } }