无法从尾到头正确显示列表的节点

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