我正在做一个codefights链接列表问题,我似乎无法理解为什么我的代码抛出了NullPointerException。
我写它的方式是,一旦你像第三个索引那样击中一个位置,它会使插入的下一个成为当前节点的下一个,然后使新的当前节点成为插入,以便我们可以插入节点。我做了反击+ 1来避免Null问题,但看起来我失败了:/
$ echo "FROM java_jre_8@sha256:92f22331226b9b3c43a15eeeb304dd7" | sed "s#FROM java_jre_8@#FROM docker-registry.service.consul:5000/java_jre_8@#"
FROM docker-registry.service.consul:5000/java_jre_8@sha256:92f22331226b9b3c43a15eeeb304dd7
答案 0 :(得分:0)
您没有保存头指针,因此在条件return curr
循环后立即写while (curr != null)
时返回null。因此,请更改代码以返回链接列表的实际头部。
此外,一旦完成插入,就不需要额外的遍历,所以也要添加一个break语句:
int counter = 0;
Node head = curr;// save pointer to head of linked list.
while (curr != null) {
if (counter+1 == position) {
insert.next = curr.next;
curr.next = insert;
break;
}
curr = curr.next;
counter++;
}
return head;