从链表中获取第n个节点

时间:2014-04-13 00:07:05

标签: java

我有这些代码: 班级档案:

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()方法,而我没有实现。我只是在寻找这样的答案...对不起,如果我有困扰任何人......

2 个答案:

答案 0 :(得分:1)

当你说getNthValue(1)时,这会返回索引1处的值,这是索引从0开始的第二个元素。因此,在链接列表中,索引0处的值为1,值为2且索引为1。

答案 1 :(得分:0)

  

私有节点getNth(int index)

缺少return

  

return temp;