Как добавить узел от второй до последней позиции? - PullRequest
0 голосов
/ 02 апреля 2019

Итак, я пытаюсь создать метод, который вставляет узел со второй до последней позиции связанного списка.

Например, я хочу поместить 2 со второй по последнюю позицию в моем списке [1,2,3], поэтому мой список теперь будет [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 Ответ

2 голосов
/ 02 апреля 2019

В операторе else, где вы назначаете prev = узел, он должен быть prev.next = node, так как prev - текущая секунда после последней, теперь узел займет свое место, поэтому точка prevузел и узел присоединения к последнему узлу связанного списка.Попробуйте это, это должно работать.

first-> prev-> last, теперь ваш новый узел должен быть между prev и last, поэтому first-> prev-> node-> last

...