我已经看过很多帖子了,但是我似乎想不通--怎么把一个元素插入到一个空的双向链表中呢?(我无法想象一个空的DLL。)我想从文件中读取内容并将它们插入到DLL中,而且我还有一个添加对象的方法来帮助实现这一点。
public void add(ListNode prev, Object object, ListNode next){
ListNode newNode = new ListNode(prev, object, next);
prev.setNext(newNode);
newNode.setPrevious(prev);
newNode.setNext(next);
next.setPrevious(newNode);
}在我读取对象并插入对象的方法中,
int currNum = scanner.nextInt();
DoublyLL dll = new DoublyLL();
ListNode curr = dll.getFirst(); //start at beginning of list
ListNode prev = null;
if(curr == null){ //if the list is empty
ListNode first = new ListNode(curr, currNum, null);
dll.getFirst().setValue(first); //returns a null-pointer exception
}最后一行产生一个空指针异常。那么如何插入第一个元素呢?你使用add()了吗?谢谢你的帮助。
发布于 2014-01-27 05:10:26
您首先需要执行dll.setFirst(<some non-null object>)之类的操作,然后执行最后一行操作。它显然是null (因为您刚刚在if语句中测试了这个条件)。你不需要在first中设置一些值,你需要首先在这里实例化first。
发布于 2014-01-27 05:22:04
您只需将报头指向它的header=new节点(null,currNum,null);
https://stackoverflow.com/questions/21369188
复制相似问题