【发布时间】:2013-02-18 22:28:19
【问题描述】:
我有一个任务来实现一个单链表。我试图弄清楚如何获得头部但我最终得到堆栈溢出错误或空指针错误。有人可以帮助我。我已经展示了相关的代码:
public class Llist {
private Object data;
private Llist next;
private Llist head = new Llist(null, null);
public Llist(Object d) {
this(d, null);
}
public Llist(Object d, Llist n) {
data = d;
next = n;
}
我有一个添加节点的方法,它会检查是否有头,如果没有则新节点是头:
public static Llist add(Llist l, Object d) {
Llist n = new Llist(d,l);
if(l.head == null) {
l.head = n;
}
return n;
}
目前我得到一个堆栈溢出错误...但是如果我在 2 中删除将 head 设置为 null 的行
【问题讨论】:
-
你怎么打电话给
add? -
最好从this list 或其他您最喜欢的风格和实践中获取算法和数据结构书籍。顺便说一句,你的
add方法不应该是static。 -
我在我创建的新 Llist 上调用 main 方法中的 add。
-
像这样:Llist l = null; l.add(l, 6); }
-
Llist l = null表示您还没有Llist,调用l.add()将不起作用。
标签: java