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