Отображение 1-го узла связанного списка - PullRequest
0 голосов
/ 05 декабря 2018

Мне удалось получить первое значение в связанном списке, но оно работает только в этом сценарии.Как можно заставить getFirst () работать с любым количеством значений, хранящихся в связанном списке?

Эта программа выводит: Первое число -> 1

public class LinkedListFirst 
{
 public static void main(String[] args)
   {
      MyLinkedList list = new MyLinkedList();
      list.addFirst(1);
      list.addFirst(2);
      list.addFirst(3);
      list.getFirst();
   }
}

class MyLinkedList
{
private class Node            // inner class
{
  private Node link;
  private int x;
}
//----------------------------------
private Node first = null;    // initial value is null
//----------------------------------
public void addFirst(int d)
{
  Node newNode = new Node(); // create new node
  newNode.x = d;             // init data field in new node
  newNode.link = first;      // new node points to first node
  first = newNode;           // first now points to new node
}
//----------------------------------
 public void getFirst()
 {
   System.out.println( "First Number is --> " + first.link.link.x);
 }
}

1 Ответ

0 голосов
/ 05 декабря 2018

Исходя из ваших комментариев выше, я думаю, что вы на самом деле следите за последним пунктом в списке.

Рассмотрите этот метод:

public void getLast()
{
    Node current = first;
    while(current.link != null){
        current = current.link;
    }
    System.out.println("First number is ---> " + current.x);
}

Некоторая путаница может возникнуть из-заТот факт, что вы используете слово «первый» слишком свободно.Да, вы добавили номер 1 first , но, поскольку вы добавляете элементы в начало списка , теперь это элемент последний списка.

Надеюсь, это поможет.

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