Artur Vieira
Artur Vieira

Reputation: 1

In this method I keep getting a return value of One even after I add more nodes

Got a quick question, this is part of a linked list. It determines what the size of the list is, it doesnt work very well at the moment because it keeps returning a 1 even after I add more nodes.

public int size(){
ListNode currentNode = null;
ListNode previousNode = null;
int numberOfNodes = 0;

if (head == null) return 0;

previousNode = head;
currentNode = head.next;

numberOfNodes++;

while (currentNode != null){
    previousNode = currentNode;
    currentNode = currentNode.next;
    numberOfNodes++;
}
return numberOfNodes;

}

Upvotes: 0

Views: 64

Answers (2)

Arne Burmeister
Arne Burmeister

Reputation: 20594

Too much clutter in this code, try the following:

public int size() {
  int numberOfNodes = 0;
  ListNode currentNode = head;
  while (currentNode != null){
    numberOfNodes++;
    currentNode = currentNode.next;
  }
  return numberOfNodes;
}

Upvotes: 0

Petar Ivanov
Petar Ivanov

Reputation: 93010

If the addNode function is as the one in here then you have an error:

Last line should be

    previousNode.next = newNode;

instead of

    newNode = previousNode.next;

Upvotes: 2

Related Questions