Я пытаюсь напечатать значение в узле, но вместо этого печатается адрес для ссылочной переменной? - PullRequest
0 голосов
/ 16 мая 2019

Это проблема, которую мне дали: «Предположим, у вас есть класс связанного списка, который включает ОБА первый и последний указатель. Первый указывает на первый узел; последний указывает на последний узел. Если список не имеет узлов,тогда и first, и last имеют значение null.

Напишите метод экземпляра removeFirst () для этого класса связанного списка, который удаляет первый узел в списке и обновляет первый и последний соответственно. Он должен возвращать ссылочный указатель наудаленный узел. Если в списке нет узлов, когда вызывается метод removeFirst, ваш метод должен возвращать ноль. "

Код выводит ноль, если в списке нет узлов.Но когда я проверяю его, добавляя узел, код выводит адрес удаленного узла, а не значение в нем.

Я попытался поместить это в main: Node p = list.removeFirst(); System.out.println(p);

Но яполучить эту ошибку: ошибка: несовместимые типы: LL.Node не может быть преобразован в узел

class SF5
{
    public static void main(String[] args)
    {
        LL list = new LL();
        list.addFirst(1);
        System.out.println(list.removeFirst());
    }
}
class LL
{
    private class Node
    {
        private Node link;
        private int x;
        public Node(int x)
        {
            this.x = x;
        }
    }
    private Node first = null;
    private Node last = null;
    public void addFirst(int d)
    {
        Node newNode = new Node(d);
        newNode.link = first;
        first = newNode;
    }
    public Node removeFirst()
    {
        Node p;
        p = first;
        if (p == null)
            return p;
        else
        {
            first = first.link;
            return p;
        }
    }
}

Это вывод: LL $ Node @ 4d591d15

Я хочу, чтобы он вывел: 1

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