package uni;
import java.util.*;
public class Link {
public int data;
public Link next;
int iData;
Link header = null;
Link idata;
public Link(int data) {
this.data = data;
}
public void LinkDisplay() {
System.out.println("Data: " + data);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
LinkedList linkedList = new LinkedList();
int num;
for (int i = 0; i < 3; i++) {
System.out.println("Enter data");
num = input.nextInt();
linkedList.insertLink(num);
}
linkedList.DiaplayAll();
linkedList.deleteFirst();
}
}
class LinkedList {
public Link first;
Link header = null;
public void insertLink(int data) {
Link newLink = new Link(data);
newLink.next = first;
first = newLink;
}
public void DiaplayAll() {
Link current = first;
while (current != null) {
current.LinkDisplay();
current = current.next;
}
}
// delete method is called
public int deleteFirst() // delete first item
{
// (assumes list not empty)
Link current = header; // save reference to link
header = header.next; // delete it: first-->old next
return current.data; `enter code here`// return deleted link
}
}
Это программа списка ссылок. Я запускаю этот код несколько раз, но он дает исключение в строках 45 и 74. Код работает хорошо, кроме метода удаления. Вероятно, есть две ошибки; 1-й по вызову метода удаления и второй, когда он удаляет узел.Как запустить эту программу списка ссылок?
Просьба указать, что это за ошибки и почему они происходят.
Вот результат:
debug: Enter data 100 Enter data 45 Enter data 10 Data: 100 Exception in thread "main" java.lang.NullPointerException at uni.LinkedList.deleteFirst(Link.java:74) at uni.Link.main(Link.java:45) Java Result: 1
могли бы вы опубликовать точные ошибки что вы получаете? – quixotrykd
, когда вы вызываете header.next, заголовок равен null, поэтому он дает nullpointerexception – quixotrykd