链表末尾插入节点报错: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
相关产品推荐
相关产品推荐

