无法从尾到头正确显示列表的节点
Unable to display nodes of the list properly starting from the tail to head
我的insert方法解释:
我分配了 tail 的 "next variable" 来保存旧节点的地址。我分配了新节点插入列表的尾部。
我尝试显示列表,从尾部开始,遍历列表,直到它到达头部。
问题:
但是输入显示的 C 不是我想要的。显示方法应该显示C、B、A。
我什至在纸上调试我的代码。我不知道为什么显示不检索链接列表中链接的节点的最后地址。它仅检索列表中的最后一个节点并仅显示列表中的最后一个节点。
public static void main(String[] args)
{
LinkedList list = new LinkedList();
list.insert("A");
list.insert("B");
list.insert("C");
list.display();
}
public void insert(String data)
{
Link link = new Link(data);
// this code only executes the first time when the list has
// no node
if(head == null)
{
head = link;
tail= link;
}
// this code will execute when the linked list has one or more node
else
{
tail.next = tail;
tail = link;
}
}
public void display()
{
while(tail != null)
{
System.out.println(tail.data);
tail = tail.next;
}
}
您已经创建了一个单向链表。该列表有头部和尾部,链接是从头到尾。单向链表的设计只有一个方向 "forward"。对于元素 [a,b,c],列表链接为 a->b->c。要以相反的顺序打印元素,您至少有两个选择。使用递归打印元素 c 、 b 、 a 或实现 a doubly linked list
我的insert方法解释: 我分配了 tail 的 "next variable" 来保存旧节点的地址。我分配了新节点插入列表的尾部。
我尝试显示列表,从尾部开始,遍历列表,直到它到达头部。
问题: 但是输入显示的 C 不是我想要的。显示方法应该显示C、B、A。
我什至在纸上调试我的代码。我不知道为什么显示不检索链接列表中链接的节点的最后地址。它仅检索列表中的最后一个节点并仅显示列表中的最后一个节点。
public static void main(String[] args)
{
LinkedList list = new LinkedList();
list.insert("A");
list.insert("B");
list.insert("C");
list.display();
}
public void insert(String data)
{
Link link = new Link(data);
// this code only executes the first time when the list has
// no node
if(head == null)
{
head = link;
tail= link;
}
// this code will execute when the linked list has one or more node
else
{
tail.next = tail;
tail = link;
}
}
public void display()
{
while(tail != null)
{
System.out.println(tail.data);
tail = tail.next;
}
}
您已经创建了一个单向链表。该列表有头部和尾部,链接是从头到尾。单向链表的设计只有一个方向 "forward"。对于元素 [a,b,c],列表链接为 a->b->c。要以相反的顺序打印元素,您至少有两个选择。使用递归打印元素 c 、 b 、 a 或实现 a doubly linked list