我是链接列表和创建节点的新手。我一直试图解决这个问题,但我没有运气。我很确定它的东西真的很简单,但我非常天真的编码所以我将非常感谢你的帮助。至于控制台盒子,这正是我插入10个整数后所得到的。
"Exception in thread "main" java.lang.NullPointerException
at LinkedLists.LinkedList.get(Lab4bLinkedList.java:39)
at LinkedLists.Lab4BLinkedList.sum(Lab4bLinkedList.java:65)
at LinkedLists.Lab4BLinkedList.main(Lab4bLinkedList.java:59)
列表:LinkedLists.LinkedList@5e481248
处理完成,退出代码为1“
package LinkedLists;
import java.util.Scanner;
class LinkedList {
private Node head;
static class Node {
int data;
Node next;
Node(int d) {
data = d;
next = null;
}
}
void add(int n) {
Node newnode = new Node(n);
if (head == null) {
head = newnode;
newnode.next = null;
return;
} else {
Node end = head;
while (end.next != null) {
end = end.next;
}
end.next = newnode;
return;
}
}
int get(int in) {
int i = 0;
Node current = head;
while (i != in) {
current = current.next;
}
return current.data;
}
}
class Lab4BLinkedList {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
LinkedList ll = new LinkedList();
System.out.println("Enter 10 numbers: ");
for (int i = 0; i < 10; i++) {
ll.add(scan.nextInt());
}
System.out.println();
System.out.print("List: " + ll);
System.out.println();
System.out.println("Sum = " + sum(ll));
}
private static int sum(LinkedList ll) {
int sum = 0;
for (int i = 0; i < 10; i++) {
sum += ll.get(i);
}
return sum;
}
}
发布于 2018-10-23 14:31:22
你的get方法while循环将永远运行,因为没有更新i。每次循环更新当前指向下一个节点,直到它变为空,然后代码尝试指向下一个 - >这会抛出一个空的Pinter异常
https://stackoverflow.com/questions/-100002967
复制相似问题