0

我得到了这个异常,这似乎是我正在使用一个为空的节点做事。有人可以解释我是怎么做到的吗?构造函数应该是什么样的?我已经看到它是空的或带有标题和尾部虚拟节点..

    //default constructor
public AddressList() {

}

    //get size
public int size() {
    return counter;
}

public void addEntryNode(){
    //create the new node
    EntryNode n = new EntryNode();
    //set the data
    System.out.println("Enter first name: ");
    n.myFirstName = keyboard.next();
    n.setFirstName(n.myFirstName);

    System.out.println("Enter Last Name: ");
    n.myLastName = keyboard.next();
    n.setLastName(n.myLastName);

    System.out.println("Enter Email Address: ");
    n.myEmail = keyboard.next();
    n.setEmail(n.myEmail);

    System.out.println("Enter Phone Number: ");
    n.myPhoneNum = keyboard.next();
    n.setPhoneNum(n.myPhoneNum);

    n.setIndex(index);

    //add nodes to head of list
    head.setPrev(n);
    n.setNext(head);
    head = n;

    //up the count and index 
    counter++;
4

1 回答 1

1

好吧,这似乎是最有可能的解决方法。将 head 初始化为 null,并添加列表何时为空的条件。

public AddressList() {
    head = null
}

您的情况将如下所示:

if (head == null) {  // empty list
    head = n
}
else {
    head.setPrev(n);
    n.setNext(head);
    head = n;
}
于 2012-03-06T01:17:15.463 回答