如何在Java中的单链表中实现getPrevious方法

mys*_*boy 0 java linked-list

我想实现:

public Object getPrevious(); and reset() method.
Run Code Online (Sandbox Code Playgroud)

*它应该返回使用SAME内部维护的指针作为getNext(),*通过getNext()或getPrevious()返回上一次返回的项目前面的列表中节点的内容*

并重置将重置列表,以便getPrevious()和getNext()从头开始,它应该表现得好像我们从未调用过那些方法.

在单链表中.我已经实施了:

public int length();
public Object first();
public Object last();
public boolean lookup(Object obj);
public Object get(int n);
public void add(Object o);
public int find(Object obj);
public void delete(Object obj);
public void delete(int n)
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 7

到达上一个节点的唯一方法是从头部走,直到找到一个节点,其"下一个"节点是您尝试查找的上一个节点的节点.这是低效的,这就是为什么双链表往往优于单链表.(例外是函数式编程语言中的列表,它们通常是不可变的......你可以通过记住"head"列表和新的尾值来有效地"追加"到不可变的单链表.这不起作用如果列表必须双重链接.)