Добавить метод Linked List ... Он продолжает удалять последний вход - PullRequest
0 голосов
/ 16 февраля 2020
public void append(int data) {
    Node newNode = new Node(data);

    if (head == null) {
        head = new Node(data);
        return;
    } else { 
        Node last = head;
        while(last.nextNode != null) {
            last = last.nextNode;
        }
        last.nextNode = newNode;
    }
    return;
}


public void printList(){
    Node temp = head;
    while (temp != null && temp.nextNode != null){
        System.out.print(temp.data + " " );
        temp = temp.nextNode;
    }
    temp = temp.nextNode;
}

Ввод: 4,5,6,9,9 Ввод: 4,5,6,9

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

1 Ответ

0 голосов
/ 17 февраля 2020

Вы забыли напечатать последний узел. Вы проверяете не только, является ли temp ненулевым, но также имеет ли он следующий узел после него - поэтому вы выходите, пока l oop до того, как последний узел был фактически напечатан.

Либо измените условия, либо напечатайте последний узел через некоторое время l oop (я бы предложил первый вариант).

Первый вариант:

public void printList() {
    Node temp = head;
    while (temp != null) {
      System.out.print(temp.data + " ");
      temp = temp.nextNode;
    }
}

Второй вариант:

public void printList(){
    Node temp = head;
    while (temp != null && temp.nextNode != null){
        System.out.print(temp.data + " " );
        temp = temp.nextNode;
    }
    // print last node here
    System.out.print(temp.data);
    temp = temp.nextNode; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...