+ // Remove the first nElements
+ if (isEmpty()) {
+ return;
+ } else if (nElements == 0) {
+ return;
+ } else if (headNode != null && headNode.getNext() == null) {
+ headNode = null;
+ } else {
+ // We have at least 2 nodes in the linked list
+ IntNode nodeCursor = headNode;
+ int i = 0;
+ // Go to the node at the nElements place
+ while (i < nElements -1 && nodeCursor.getNext() != null && nElements > 1) {
+ nodeCursor = nodeCursor.getNext();
+ i++;
+ }
+ // Set the nElements + 1 node as the root node
+ // It might be null
+ setHeadNode(nodeCursor.getNext());
+ }