首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Java中测量单链表的大小/长度?

在Java中测量单链表的大小/长度?
EN

Stack Overflow用户
提问于 2012-09-27 16:23:57
回答 4查看 65.9K关注 0票数 3

我需要帮助使int size();方法在Java中的一个单链表。

这就是我到目前为止所知道的,但是它没有返回列表的正确大小。

代码语言:javascript
复制
public int size()
{
    int size = 0;
    Node CurrNode = head;
    while(CurrNode.next != null)
    {
        CurrNode = CurrNode.next;
        size++;     
    }
    return size;
}

有人能帮我用Java实现这个方法吗?

EN

回答 4

Stack Overflow用户

发布于 2012-09-27 16:30:42

您可以做的最大改进是使用Java Coding Convension和使用camelCase局部变量。

你可以这样写。

代码语言:javascript
复制
public int size() {
   int size = 0;
   for(Node n = head; n.next != null; n = n.next)
       size++;     
   return size;
}

当您在Java中重写一个常用的类时,如果您想要一种更好的方法,我建议您看看它是如何实现的。

来自LinkedList

代码语言:javascript
复制
/**
 * Returns the number of elements in this list.
 *
 * @return the number of elements in this list
 */
public int size() {
    return size;
}

正如您所看到的,当添加一个元素时,大小是递增的,而当一个元素被删除时,它是递减的,这样您就不必遍历列表来获取大小。

票数 9
EN

Stack Overflow用户

发布于 2012-09-27 16:30:12

最简单的方法是将跟踪大小的变量初始化为0。然后,每次你添加一个节点,当你删除一个节点时,它就是大小( size++ )。然后,size()方法只需返回此变量,而不遍历列表。

票数 4
EN

Stack Overflow用户

发布于 2015-07-06 04:55:35

您需要将列表传递给您的方法并检查currNode!= null:

代码语言:javascript
复制
public static int size(Node currNode){
    int count = 0;
    while (currNode!= null){
        count++;
        currNode=currNode.getNext();
    }
    return count;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12617021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档