UT7 Ответов: 0

Как создать указатели узлов для моего класса linkedlist в java


Привет всем, у меня есть этот код из видео YouTube о том, как найти n-й узел из конца Linkedlist, этот код находится в классе Node, но я создал класс Linkedlist и добавил элементы в свой Linkedlist. Я хочу изменить объявление метода
public Node nthToLast(Node node, int n)
в класс Node, чтобы принять связанный список LinkedList
public Node nthToLast(Linkedist nthLinkedList, int n)
так что я могу передать свой Linkedlist в качестве аргумента из основного метода, но когда я изменил объявление метода в классе Node, я не знаю, как назначить переменные (указатели - curr и follower) моему головному узлу Linkedlist, чтобы он мог работать с существующей структурой кода. Обратите внимание, я знаю, что метод Node node не может принимать LinkedList, поэтому я изменил параметры метода, а также класс Node и мой класс Linkedlist находятся в одном пакете. Мой класс Linkedlist показывает ошибку на
System.out.println(node.nthToLast(nthLinkedList, n));
поэтому я даже не стал его запускать, потому что знаю, что он не будет компилироваться. Спасибо за любую помощь.
Класс Node из видео YouTube -
public class Node {

    private int value;
    private Node next;

    public Node nthToLast(Node node, int n) {

        Node curr = node;
        Node follower = node;

        for (int i = 0; i < n; i++) {
            if (curr == null) {
                return null;
            }
            curr = curr.next;
        }

        while (curr.next != null) {
            curr = curr.next;
            follower = follower.next;
        }

        return follower;
    }

}


Что я уже пробовал:

Мой основной класс, где я объявил и инициализировал свой LinkedList и вызвал метод nthToLast из класса Node -
<pre>public class FindNthNodeFromEndOfLinkedlist {

    public static void main(String[] args) {
        
        List nthLinkedList = new LinkedList<Integer>();
        
        nthLinkedList.add(1);
        nthLinkedList.add(2);
        nthLinkedList.add(3);
        nthLinkedList.add(4);
        nthLinkedList.add(5);
        
        int n = 4;
        
        Node node = new Node();
        System.out.println(node.nthToLast(nthLinkedList, n));
    } 
}

0 Ответов