package com.coding.basic; public class LinkedList implements List { private Node head; private int size = 0; public void add(Object o){ addLast(o); } public void add(int index , Object o){ for (int i = 0; i <= index; i++) { head = head.next; } Node head = this.head; Node node = new Node(); this.head.next = node; node.data = o; node.next = head.next; size++; } public Object get(int index){ for (int i = 0; i <= index; i++) { head = head.next; } return head.data; } public Object remove(int index){ for (int i = 0; i < index; i++) { head = head.next; } Node head = this.head; Object data = head.next.data; Node next = this.head.next.next; head.next = next; return data; } public int size(){ return size; } public void addFirst(Object o){ Node node = new Node(); node.next = head; node.data = o; size++; } public void addLast(Object o){ Node node = new Node(); head.next = node; node.data = o; node.next = null; size++; } public Object removeFirst(){ Object data = head.data; head.next = null; return data; } public Object removeLast(){ for (int i = 0; i < size; i++) { head = head.next; } Object data = head.next.data; head.next = null; return data; } public Iterator iterator(){ return null; } private static class Node{ Object data; Node next; } }