package com.coding.basic; public class LinkedList implements List { private Node head; private int size; public void add(Object o){ addLast(o); } public void add(int index , Object o){ Node node = head; for(int i = 0; i < index; i++){ node = node.next; } Node newNode = new Node(); newNode.data = o; newNode.next = node.next; node.next = newNode; size++; } public Object get(int index){ if(index > size-1){ return null; }else{ Node node = head; for(int i = 0; i < index; i++){ node = node.next; } return node.data; } } public Object remove(int index){ if(index > size-1){ return null; }else if(index == 0){ Object obj = head.data; head = head.next; size--; return obj; }else{ Node node = head; //��ñ�ɾ���ڵ��ǰһ���ڵ� for(int i = 0; i < index-1; i++){ node = node.next; } Object obj = node.next.data; node.next = node.next.next; size--; return obj; } } public int size(){ return size; } public void addFirst(Object o){ Node newHead = new Node(); newHead.data = o; newHead.next = head; head = newHead; size++; } public void addLast(Object o){ Node node = head; while(node.next != null){ node = node.next; } Node newNode = new Node(); newNode.data = o; node.next = newNode; size++; } public Object removeFirst(){ return remove(0); } public Object removeLast(){ return remove(size); } public Iterator iterator(){ return null; } private static class Node{ Object data; Node next; } }