0

これは私の最初の投稿です。単独のリンク リストを作成しようとしています。メソッドを使用してリストの最後または最初に値を挿入し、メソッドを使用AtEndしてすべての値を出力しています。挿入メソッドは正常に動作しているように見えますが (少なくとも私はそう思います)、表示メソッドを呼び出すと常に最初の値のみが表示され、その後 null ポインター例外が発生します。たとえば、このコードを実行すると、「not null」の表示方法をチェックしたにもかかわらず、9 しか表示されず、NPE が表示されます。AtStartdisplay

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();
}
4

1 に答える 1