0
這是我第一篇文章。我正在嘗試創建一個單獨的鏈接列表。我使用AtEnd
和AtStart
方法在列表的末尾或開頭插入值,並使用display
方法打印所有值。插入方法似乎工作正常(至少我認爲是這樣),但每當我調用顯示方法它只顯示第一個值,然後有一個空指針異常。例如,當我運行這個代碼時,我只看到9,然後是NPE,儘管我已經對「not null」的顯示方法進行了檢查。空指針在運行時異常
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();
}
我假設這就是Java。請用語言標記它,所以我們知道你在說什麼。另外,不要爲可憐的縮進道歉,你應該修正它! – 2013-04-07 18:20:22
此外,有數百個,如果不是成千上萬個關於'NullPointerException'的問題,因爲它們都歸結爲相同的解決方案:**調試代碼**。這是你只需*學習的一部分發展。另請參見[**什麼是空指針異常?**](http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception) – 2013-04-07 18:23:00
請花時間格式化您的代碼,而不是以藉口張貼蹩腳文本。 – oleksii 2013-04-07 18:27:57