我一直在看各种帖子,但我似乎无法解决这个问题 - 如何将一个元素插入一个空的双向链表? (我无法想象一个空的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()吗?谢谢你的帮助。
答案 0 :(得分:0)
您首先需要执行dll.setFirst(<some non-null object>)
之类的操作然后执行最后一行。它显然是null
(因为您刚刚在if
语句中测试了这个条件)。您无需在first
中设置一些值,您需要先在此处实例化first
。
答案 1 :(得分:0)
您只需将标题指向它即可 header = new Node(null,currNum,null);