Как проверить последнее значение узла в связанном списке? - PullRequest
1 голос
/ 24 апреля 2019

Код, который я написал ниже, не проверяет, находится ли искомое значение в последнем узле. Как проверить значение последнего узла?

public void search(int value)
{
    Node node = head;
    while(node.next!=null)
    {
        if(node.data == value)
        {
            System.out.println("Found");
        }
            node = node.next;
        }


}

Ответы [ 2 ]

1 голос
/ 24 апреля 2019

Последний узел - один перед концом = ноль.Просто следуйте идее (код может содержать небольшую ошибку)

public void search(int value)
{
    Node node = head;
    Node lastnode;

    while(node.next!=null)
    {
        if(node.data == value)
        {
            System.out.println("Found");
        }
            lastnode = node;
            node = node.next;
            if(node==null)
                System.out.println("Last node Found");   //lastnode.data
        }
}
1 голос
/ 24 апреля 2019

В вашем while состоянии вы проверяете, является ли следующий ноль нулевым.Это означает, что когда текущая итерация находится на последнем узле, она не будет проверена.Вам нужно проверить, является ли node сам по себе null, что означает, что вы вышли из конца связанного списка.

while (node != null)

Это означает, что вы не остановите цикл до тех пор, покавы проверили последний узел, обозначенный node как null.

Кстати, если подпись метода не зафиксирована домашним заданием, вы можете захотеть, чтобы метод возвращал boolean, указывающийбыло ли найдено значение, вместо того, чтобы что-то печатать, если вы его нашли, и ничего не печатать, если вы его не нашли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...