2011-05-06 138 views
0

我遇到空指針異常的問題。盡我所能,我找不到任何幫助。如果有人有一個想法,請讓我知道。排序鏈接列表

for (cursor = head; cursor != null; cursor = cursor.link) { 

    k = addScore(cursor.num); 
    for (int i = 1; i <= nodeLength(); i++) { 

     cursorAdd = head.link; 
     j = addScore(cursorAdd.num); 

     if (j > k) { 

      cursor.link = cursorAdd.link; 
      cursorAdd.link = cursor; 
     } 
     cursorAdd = cursorAdd.link; 
    } 
} 
+0

我承擔的功課?因爲否則有一個非常好的Java自帶的'LinkedList':http://download.oracle.com/javase/6/docs/api/java/util/LinkedList.html – 2011-05-06 22:27:37

+3

如果'cursorAdd'爲'null'會怎麼樣? – MByD 2011-05-06 22:27:51

+0

查看堆棧跟蹤,它顯示哪一行有異常。看這條線,那裏使用了哪些變量?如果這仍然沒有幫助,請向我們展示堆棧跟蹤並在代碼中標記相應的行。 – 2011-05-06 22:29:40

回答

0

我認爲你的清單隻有一個元素。所以

head != null 
head.link == null; 
cursor = head; // cursor != null; cursor.link == null. 
cursorAdd = cursor.link; // == null 
addScore(cursorAdd.num) <-- NPE 
2

您在使用它之前不檢查那個cursorAdd != null