【发布时间】:2018-09-21 02:33:45
【问题描述】:
像普通的链表一样,我有一个节点类和一个双链表类。头、尾和光标最初都设置为空。添加元素后,光标将设置为新添加的元素。假设到目前为止我已经添加了两个元素,光标正在引用第二个元素(因为它是刚刚添加的)。如何将光标移回以引用第一个元素?另外,我如何将它再次向前移动到第二个元素?
【问题讨论】:
像普通的链表一样,我有一个节点类和一个双链表类。头、尾和光标最初都设置为空。添加元素后,光标将设置为新添加的元素。假设到目前为止我已经添加了两个元素,光标正在引用第二个元素(因为它是刚刚添加的)。如何将光标移回以引用第一个元素?另外,我如何将它再次向前移动到第二个元素?
【问题讨论】:
你的问题和目的不是很清楚,反正遍历java集合框架的LinkedList(java集合api中的链表)可以使用Iterator对象。这样光标就会从一个对象依次遍历到另一个对象,直到到达终点。
我希望下面的链接会有用。
https://beginnersbook.com/2014/07/java-linkedlist-iterator-example/
【讨论】:
据我所知,Java 没有双向链表类。如果我错了,请纠正我。
如果它是自定义构建的双向链表,您是否想知道如何操作?
// Class for Doubly Linked List
public class DLL {
Node head; // head of list
/* Doubly Linked list Node*/
class Node {
int data;
Node prev;
Node next;
// Constructor to create a new node
// next and prev is by default initialized as null
Node(int d) { data = d; }
}
}
public class DLLTest{
public static void main(String[] args) {
// setup
Node cursor = new Node(1);
cursor.next = new Node(2);
Node temp = cursor;
cursor = cursor.next;
cursor.prev = temp;
// To move cursor to second node, overwrite cursor with next node
cursor = cursor.next;
// To move cursor to first node, overwrite cursor again
cursor = cursor.prev;
}
}
【讨论】: