You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

链表末尾插入节点报错:Cannot assign field 'next' because 'itNode' is null 如何修复?

LinkedList末尾插入元素空指针错误修复

你的代码触发空指针的核心原因是遍历链表的循环条件错误:
当前循环while(itNode != null)会持续移动itNode,直到它指向null(也就是链表最后一个节点的next),此时再执行itNode.next = nodeINLast,自然会报错"Cannot assign field 'next' because 'itNode' is null"。

正确的做法是让循环在itNode.next != null时继续,这样循环结束后,itNode恰好指向链表的最后一个节点,直接将它的next指向新节点即可。

修复后的代码:

public void insertLast(String plateNum, int minutes) {
    Node nodeINLast = new Node(plateNum, minutes);
    nodeINLast.next = null;
    
    if(first == null) {
        first = nodeINLast;
    } else {
        Node itNode = first;
        // 循环到最后一个节点(它的next为null)时停止
        while(itNode.next != null) {
            itNode = itNode.next;
        }
        itNode.next = nodeINLast;
    }
}

补充说明:

  • 当进入else分支时,first已经被确认不为null,所以itNode初始值是有效的
  • 新节点的next设为null是合理的,因为它会成为链表的最后一个节点

内容的提问来源于stack exchange,提问作者Harshana_prabhath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 23:35:26