【发布时间】:2013-04-15 09:14:54
【问题描述】:
我必须将链表中的所有标记左移一个位置。
这是我的方法代码:
private LLNode<E> head; // the first node in the list
private LLNode<E> tail; // the last node in the list
public void shiftLeft()
{
LLNode<E> temp = new LLNode<E>();
temp = head;
head = head.next;
tail.next = temp;
}
/*from main method
TopSpinLinkedList<Integer> ll = new TopSpinLinkedList<Integer>(numTokens, spinSize);
//fills LinkedList with tokens
for(int i = 1; i <= numTokens; i++) {
ll.add(i);
}
*/
当我调用该方法时,在运行时出现空指针错误。任何帮助,将不胜感激。谢谢。
【问题讨论】:
-
代码中的 head 是什么?
-
列表中的第一个节点
-
head或tail必须是null。如果没有更多的代码(一个完整的可运行程序,用最少的代码重现问题总是有帮助的),我们不可能知道是哪一个。 -
你有循环linkedList?
-
你能告诉我们你的完整代码吗?就像你在哪里初始化 head 和 tail。
标签: java linked-list shift doubly-linked-list circular-list