Java 在单链接列表中向后移动?

Java 在单链接列表中向后移动?,java,Java,我正在创建我的第一个链表,虽然我知道双链表实际上是用于向后移动的,但我正在尝试创建一个方法,将列表中的当前节点向后移动一个单链表中的节点 以下是我到目前为止得到的信息,我已经包括了我的下一步,以供参考和构造器: //Paramaterized construct public ListNode(int aData, ListNode aLink) { this.data= aData; this.link = aLink; } } private ListNode h

我正在创建我的第一个链表,虽然我知道双链表实际上是用于向后移动的,但我正在尝试创建一个方法,将列表中的当前节点向后移动一个单链表中的节点

以下是我到目前为止得到的信息,我已经包括了我的下一步,以供参考和构造器:

  //Paramaterized construct
  public ListNode(int aData, ListNode aLink) {
    this.data= aData;
    this.link = aLink;
  }
}
private ListNode head; //First element
private ListNode current; //Current node of interest
private ListNode previous; //Node behind current

public void goToNext () {
  previous = current;
  current = current.link;
}
//TODO: Fix previous
public void goToPrev () {
  if (current != head) {
  }
  else 
    System.out.println("Current node is the head, sorry");
我忘记添加我的私有ListNode类:

private class ListNode
{
    private int data;
    private ListNode link;
    //Default construct
    public ListNode ()
    {
        this.data = data;
        this.link = link;
    }
    //Paramaterized construct
    public ListNode(int aData, ListNode aLink)
    {
        this.data= aData;
        this.link = aLink;
    }
}

我想我必须从列表的开头开始迭代,直到找到与当前节点相同的节点。但我不知道如何准确地设置while循环并获得正确的主体。

要做到这一点,您需要使用两个指针(而不是一个指针)遍历列表。诀窍是让一个在另一个之前正好有一个节点,因此当指针1找到感兴趣的节点时,指针2就是列表中它后面的节点,您可以通过访问#2“向后移动”。

您不能向后迭代单链接列表。若你们想向后迭代,那个么你们应该创建一个双链表。或者,您可以在迭代之前获取节点的引用

在我的例子中,“跟随者”是先前的&领导者是什么?现在的我有点不确定跟随者会是什么,或者,你只使用一个指针
p
,然后检查
p.link==current
@Henry-hmm一个指针听起来比两个简单,明白了吗curious@ChrisM我不想给出完整的解决方案,但如果我之前评论中提到的条件是真的,
p
指向哪个节点?@Henry Umm我想它会指向头部?我可能错了,这个概念是今天提出的,我有点担心confused@ChrisM所以你认为
head.link==current
总是正确的?不完全是。