1: public T remove(int givenPosition) 2: { 3: T result = null; // Return value 4: if ((givenPosition >= 1) && (givenPosition <= numberOfEntries)) 5: { 6: assert !isEmpty(); 7: if (givenPosition == 1) // Case 1: Remove first entry 8: { 9: result = firstNode.getData(); // Save entry to be removed 10: firstNode = firstNode.getNextNode(); // Remove entry 11: } 12: else // Case 2: Not first entry 13: { 14: Node nodeBefore = getNodeAt(givenPosition - 1); 15: Node nodeToRemove = nodeBefore.getNextNode(); 16: result = nodeToRemove.getData(); // Save entry to be removed 17: Node nodeAfter = nodeToRemove.getNextNode(); 18: nodeBefore.setNextNode(nodeAfter); // Remove entry 19: } // end if 20: numberOfEntries--; // Update count 21: return result; // Return removed entry 22: } 23: else 24: throw new IndexOutOfBoundsException( 25: "Illegal position given to remove operation."); 26: } // end remove 27: // Version 4.0