package code; public class LinkedList { private static Node head; private Node last; public int size; public void add(Object o) { Node l = last; Node newNode = new Node(l, o, null); last = newNode; if (head == null) { head = newNode; size = 1; } else { l.next = newNode; size++; } } public void add(int index, Object o) { Node n = node(index); System.out.println(n.data); Node pred = n.prev; Node newNode = new Node(pred, o, n); if (pred == null) { head = newNode; } else { pred.next = newNode; } size++; } public Node get(int index){ return node(index); } public Node node(int index) { Node n = head; for (int i = 0; i < index; i++) { n = n.next; } return n; } public Node remove(int index){ Node del = node(index); Node after = del.next; Node before = del.prev; before.next = after; after.prev = before; size--; return del; } private static class Node { Node next; Object data; Node prev; private Node(Node prev, Object data, Node next) { this.data = data; this.next = next; this.prev = prev; } } public static void main(String[] arg) { LinkedList ll = new LinkedList(); ll.add("hello"); ll.add("java"); ll.add("jvm"); ll.add("jvmd"); // System.out.println(ll.get(2)); // ll.add(1, "ds"); System.out.println(ll.get(0).data); System.out.println(ll.get(1).data); System.out.println(ll.get(2).data); System.out.println(ll.get(3).data); System.out.println(ll.size); System.out.println(ll.remove(1).data); System.out.println(ll.get(0).data); System.out.println(ll.get(1).data); System.out.println(ll.get(2).data); System.out.println(ll.size); } }