我有这些代码: 班级档案:
public class LinkedListCustom<T> implements AbstractList<E>
{
private int numElements; private Node head, tail;
...
...
public Node(T element)
{
T data;
Node next, prev;
}
...
...
private Node getNthElem(int index)
{
Node temp = head;
for(int i=0; i<index; i++)
{
temp = temp.next;
}
return temp;
}
public T getNthVal(int index)
{
Node n = getNthElem(index);
return n.data;
}
}
测试文件:
public class Tester extends TestCase
{
public void testGetN()
{
MyCustomLinkedList<Integer> myList = new MyCustomLinkedList<Integer>();
myList.add(1);
myList.add(2);
assertEquals("index 0 is 1", new Integer(2), myList.getNthValue(1);
}
}
但是,这不能正常运行。我可以知道我错误地做了什么吗?如果有什么不清楚我会立即澄清。
编辑:它编译但是存在NullPointerException。
编辑2:已解决对于模糊的问题和不清楚的代码感到抱歉,但我只是想知道我可能没有实现的内容,结果证明@JaviFernandez是正确的询问我是否实现了add()方法,而我没有实现。我只是在寻找这样的答案...对不起,如果我有困扰任何人......
答案 0 :(得分:1)
当你说getNthValue(1)
时,这会返回索引1处的值,这是索引从0开始的第二个元素。因此,在链接列表中,索引0处的值为1
,值为2
且索引为1。
答案 1 :(得分:0)
私有节点getNth(int index)
缺少return
:
return temp;