java - 为自定义 LinkedList 类添加方法

标签 java

我一直在为我正在研究的自定义链表实验室研究这种添加方法。一旦插入新节点,我就无法弄清楚如何将值移动一个索引。这是我的源代码。

public void add(int index, Object element) throws IndexOutOfBoundsException {
    if(index > size() || index < 0) {
        throw new IndexOutOfBoundsException();
    }

    ListNode newNode = new ListNode(element, null);

    if(head == null) {
        head = newNode;
        return;
    }

    ListNode nextNode = head.nextNode;
    ListNode currNode = head;

    int i = 0;
    while(currNode!= null) {

        if(index == i) {
            break;
        }

        currNode = nextNode;
        //Breaks down here with null pointer exception
        nextNode = nextNode.nextNode;

    }

    currNode = newNode;
    currNode.nextNode = nextNode;
}

最佳答案

当您迭代最后一个节点时,它会抛出空指针,下一个节点指向空。如果您必须在最后添加新节点,请检查下一个节点是否指向空。

此外,在您的代码中,您不会增加 i 的值,它总是会迭代整个列表。

关于java - 为自定义 LinkedList 类添加方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43174104/

相关文章:

java - 在 WebView 中从本地客户端浏览 HTML 文件

java - 为什么负 DST 时间有标准时区名称?

java - 为什么 StringBuffer 的 toString() 方法使用 Arrays.copyOfRange(value, 0, count)?

java - 使用java将文件从Windows机器复制到Linux机器的最佳方法

java - Linux cp 命令在 Java ProcessBuilder 中不起作用

Java 除法和舍入

java - 在Android中创建自定义按钮类

java - 修复找不到符号 mInterstitialAd = new InterstitialAd(this);符号 : variable mInterstitialAd location: class Ads

java - 如何从 Firebase 实时数据库中具有不同键的节点读取相同的值?

java - Solr通过自定义函数查询排序