2013-09-27 34 views
-1
public class Node { 
    private String element; 
    private Node next; 

    public void setNext(Node newNext) { 
     next = newNext; 
    } 

public class SLinkedList { 

    protected Node head; 
    protected Node tail; 
    protected long size; 

    public void addLast(Node newNode) { 
     newNode.setNext(null); 
     tail.setNext(newNode); 
     tail = newNode; 
     size = size + 1; 
} 

public class TestLinkedList { 
public static void main(String args[]) { 

    SLinkedList myList = new SLinkedList(); 

    //create 3 node 
    Node m = new Node("Tom1", null); 
    Node n = new Node("Tom2", null); 
    Node p = new Node("Tom3", null); 



    //add 1 node at the end 
    myList.addLast(m); 


    //print 
    System.out.println(myList); 
    System.out.println("Size=\t"+myList.getSize()); 
} 

执行时“myList.addLast(M);它显示了在NullPointerException异常 “tail.setNext(newNode);” 我只是想知道发生什么事addlast仅()方法空指针异常

+0

搜索NullPointerException异常可以给你很多的相关例子Ø ñ这样的失败。 –

+0

显然它与正在访问的未初始化变量有关 –

回答

0

在你的?码,

tail.setNext(newNode); // tail isn't initialized yet 
tail = newNode; 

相反做,在StackOverflow上

tail = newNode;  
tail.setNext(newNode);