【发布时间】:2013-09-17 06:50:29
【问题描述】:
我目前正在学习 Java 课程,教授告诉我们,理解链接的一个好习惯是制作一个双向链表。我制作了一个单链表,但我无法将其转换为双链表。所以我想知道是否有人可以给我任何建议以确保我的最后一个号码与前一个号码相关联?并且如果前面的数字和最后的数字连接为null。这是代码的一部分,如果您希望获得更多代码,请询问,我会发布。
添加元素等的代码。这是我试图使尾部连接到最后一个数字的尝试。
public void add(int element){
Node n = new Node();
n.setItem(element);
n.setNext(head);
head = n;
>
//The tail connected to the new number added.
n.setItem(element);
n.setBefore(tail);
tail = n;
下面的代码是插入函数,我需要确保新插入的块连接但我在想办法让它同时连接时遇到了麻烦。
public void insert(int element, int position){
int currentposition = 0;
Node currentNode = head;
//Traverse to the right position
while(currentposition < position-1){
currentposition++;
}
Node n = new Node();
n.setItem(element);
n.setNext(currentNode.getNext());
currentNode.setNext(n);
//The previous number connecting to the new number
currentNode = tail;
}
【问题讨论】:
-
列表中的每个节点现在都应该有一个
previous引用。 -
另外,您应该参考
first和last -
所以我应该添加对前一个节点的引用,换句话说,我应该添加对我的 CurrentNode 的引用?
-
您的第一个(头)节点应该有
prev->null和next->[the next node]。下一个节点应该有prev->head和next->[the next node or null] -
@nachokk:所以我应该将 currentNode 引用到第一个节点和最后一个节点?比如使用n.setNext()连接上一个和下一个Node?span>
标签: java singly-linked-list doubly-linked-list