これは私の最初の投稿です。単独のリンク リストを作成しようとしています。メソッドを使用してリストの最後または最初に値を挿入し、メソッドを使用AtEnd
してすべての値を出力しています。挿入メソッドは正常に動作しているように見えますが (少なくとも私はそう思います)、表示メソッドを呼び出すと常に最初の値のみが表示され、その後 null ポインター例外が発生します。たとえば、このコードを実行すると、「not null」の表示方法をチェックしたにもかかわらず、9 しか表示されず、NPE が表示されます。AtStart
display
class node {
private int data;
private node next;
node() {
}
node(int data) {
this.data = data;
this.next = null;
}
public int getData() {
return data;
}
public void setData(int data) {
this.data=data;
}
public node getNext() {
return next;
}
public void setNext(node next) {
this.next = next;
}
}
public class list extends node {
node head;
list() {
}
public void AtStart(int val) {
node n = new node(val);
if (head == null) {
head=n;
} else {
n.setNext(head);
int temp = head.getData();
head.setData(val);
n.setData(temp);
//n = head;
}
}
public void AtEnd(int val) {
if (head == null) {
node n = new node(val);
head = n;
} else {
node t = head;
for(; t.getNext() != null; ) {
if(t.getNext() == null) {
t.setNext(new node (val));
}
t = t.getNext();
}
}
}
public void display() {
node t = head;
for(; t.getNext() == null;) {
if (t !=null) {
System.out.println(t.getData());
t = t.getNext();
}
}
}
}
public static void main(String args[]) {
list l = new list();
l.AtStart(16);
l.AtEnd(6);
l.AtEnd(36);
l.AtStart(9);
l.AtEnd(22);
l.display();
}