2011-05-06 140 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