我需要帮助使int size();
方法在Java单链表。
这是我到目前为止,但它不返回列表的正确尺寸。
public int size()
{
int size = 0;
Node CurrNode = head;
while(CurrNode.next != null)
{
CurrNode = CurrNode.next;
size++;
}
return size;
}
有人可以帮助我在Java中实现这种方法吗?
你可以做的最大改进是使用Java编码Convension并使用驼峰局部变量。
你可以这样写。
public int size() {
int size = 0;
for(Node n = head; n.next != null; n = n.next)
size++;
return size;
}
当你重新用Java编写常用的类,我建议你看看怎么样,如果你想要做的事情的一个更好的办法是那里进行。
从链表
/**
* Returns the number of elements in this list.
*
* @return the number of elements in this list
*/
public int size() {
return size;
}
正如你所看到的,在添加元素时大小递增,当一个元素被删除其ID递减,因此您不必遍历列表以获得大小。
最简单的方法是将有变量,跟踪为0初始化大小则每次添加这是一个节点,只需尺寸++或size--当你删除一个节点。 您size()方法则只是有不用遍历链表返回这个变量。
您需要将列表传递给你的方法,并检查currNode!= NULL:
public static int size(Node currNode){
int count = 0;
while (currNode!= null){
count++;
currNode=currNode.getNext();
}
return count;
}
那么,计算长度的最简单的方法是通过检查currentNode!= null,并且保持currentNode递增。
我们可以使用,同时还是一个for循环来实现这一点。
下面是其中用于循环使用的例子。
public int getLength(){
ListNode temp = head;
for(temp = head; temp!=null; temp=temp.getNextNode()){
length++;
}
return length;
}