如何将节点添加到倒数第二个位置?

时间:2019-04-02 00:39:50

标签: java linked-list singly-linked-list

因此,我正在尝试创建一种在链表的倒数第二个位置插入节点的方法。

Ex-我想在[1,2,3]列表的倒数第二位放置2,所以我的列表现在应该是[1,2,2,3]

我尝试了以下代码,但似乎不起作用。

public void addSecondToLast(int data){
    Node node = new Node();
    node.data = data;
    node.next = null;

    if(top == null){
        node = top;
    }
    if(top.next == null){
        node = top.next;
    }
    else {
        Node temp = new Node();
        Node prev = new Node();
        temp = top;

        while(temp.next != null){
            prev = temp;
            temp = temp.next;
        }
        prev = node;
        node.next = temp;


    }

1 个答案:

答案 0 :(得分:2)

  

在您要分配prev = node的else语句中,它应该是   prev.next =节点,因为prev是当前倒数第二个,现在是   节点将取代其位置,因此将prev指向node并将节点加入到   链表的最后一个节点。试试这个,应该可以。

     

first-> prev-> last,现在您的新节点应该在prev和last之间,   所以first-> prev-> node-> last