我正在研究數據結構,我必須自己做一個雙鏈表,創建Node和List對象而不是使用Java實現LikedList,並且出現堆棧溢出錯誤每次我試圖在列表中添加2個元素,我不知道爲什麼。你可以幫我嗎?運行列表時堆棧溢出錯誤
public class DoubleLinked {
Node head;
Node tail;
int size;
public DoubleLinked() {
head = tail = null;
size = 0;
}
public void insertOnHead(int x) {
Node newNode = new Node();
newNode.value = x;
if(head == null) {
head = newNode;
size++;
} else {
newNode.next = head;
head.previous = newNode;
head = newNode;
size++;
}
}
@Override
public String toString() {
return "[Head: " + head + ", Tail: " + tail + ", Size: "
+ size + "]";
}
}
public class Node {
int value;
Node next;
Node previous;
@Override
public String toString() {
return "Node [Value: " + value + ", Next: " + next + ", Previous: " + previous + "]";
}
}
它插入所述第一元件(5)而不是第二(6)。
主營:
public class DEMain
{
public static void main(String[] args)
{
DoubleLinked l1 = new DoubleLinked();
l1.insertOnHead(5);
l1.insertOnHead(6);
System.out.println(l1);
}
}
堆棧跟蹤:
Exception in thread "main" java.lang.StackOverflowError at
java.lang.AbstractStringBuilder.<init>(AbstractStringBuilder.java:63)
at java.lang.StringBuilder.<init>(StringBuilder.java:109)
at DoblementeEnlazadas.Nodo.toString(Nodo.java:12)
at java.lang.String.valueOf(String.java:2854)
at java.lang.StringBuilder.append(StringBuilder.java:128)
at DoblementeEnlazadas.Nodo.toString(Nodo.java:12)
第一步是讀取和發佈異常堆棧跟蹤。它告訴你和我們,問題在哪裏。 – 2014-09-06 20:52:29
此外,請提供您進行測試的代碼。目前,這段代碼不應該給出StackOverflowError(即使它不能按預期工作)。 – 2014-09-06 20:54:06
請不要在註釋中放置代碼和堆棧跟蹤。把它們放在問題本身,使它們清晰可辨。 – 2014-09-06 21:01:17