2013-09-27 3 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 (м), она показывает NullPointerException на "tail.setNext (newNode);" Я просто хочу знать, что произойдетaddlast() метод нулевого указателя исключение

+0

Поиск NullPointerException в StackOverflow может дает вам множество связанных примеров уплотнительные n такой отказ. –

+0

Очевидно, что это связано с доступом к неинициализированным переменным –

ответ

0

В вашей? код,

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

Вместо делать,

tail = newNode;  
tail.setNext(newNode); 
Смежные вопросы