实现双向链表时始终报错!
双向链表非常简单的实现,逻辑和思路都很清晰明了,但是想不到的是老报错!
最后一个语句始终报空指针异常是怎么回事?
public class DLLNode {
static DLLNode head, second, third, tail;
//链表结点所保存的数据
Object data;
//和单向链表所不同的是增加了一个前指针
DLLNode prev;
DLLNode next;
//构造方法
DLLNode(Object obj, DLLNode prevLink, DLLNode nextLink){
data = obj;
prev = prevLink;
next = nextLink;
}
public String toString(){
return data.toString();
}
public static void main(String[] args){
//创建具有四个结点的双向链表
head = new DLLNode("dog", null, second);
second = new DLLNode("cat", head, third);
third = new DLLNode("rat", second, tail);
tail = new DLLNode("pig", third, null);
//双向链表的遍历,从最后一个结点开始遍历,当然也可以从第一个结点开始遍历
for(DLLNode cur=tail; cur!=null; cur=cur.prev){
System.out.print(cur.data+" ");
}
System.out.println();
//删除双向链表的第一个结点
head = head.next;
//System.out.println(head.prev);
head.prev = null;//
}
}
萌系怪叔叔
12 years, 7 months ago