package cse1030; public class LinkedList { private static class Node { private E data; private Node next; public Node(E data) { this.data = data; this.next = null; } } private Node head; public LinkedList() { this.head = null; } public void add(E element) { if (this.head == null) { this.head = new Node(element); } else { add(element, this.head); } } private static void add(E element, Node n) { if (n.next == null) { n.next = new Node(element); } else { add(element, n.next); } } @Override public String toString() { StringBuilder b = new StringBuilder(); b.append("["); Node n = this.head; while (n != null) { b.append(n.data); if (n.next != null) { b.append(", "); } n = n.next; } b.append("]"); return b.toString(); } public int size() { return LinkedList.size(this.head); } private static int size(Node n) { if (n == null) { return 0; } return 1 + LinkedList.size(n.next); } public static void main(String[] args) { LinkedList t = new LinkedList(); System.out.println(t.size() + ": " + t); t.add("hello"); System.out.println(t.size() + ": " + t); t.add("goodbye"); System.out.println(t.size() + ": " + t); } }