Возвращение элемента из связанного списка LinkedList

Делаю метод get в классе LinkedList

  public class Main {
        public static void main(String[] args) {
            LinkedList<Integer> list = new LinkedList<>();
            list.add(34);
            list.add(120);
            list.add(-10);
            list.add(11);
            list.add(50);
            list.add(100);
            list.add(99);
    
            list.addToBegin(77);
            list.addToBegin(88);
            list.addToBegin(99);
    
            System.out.println(list.get(3));
    
        }
    }



public class LinkedList<T> {

    private int index;

    private static class Node<T> {
        T value;
        Node<T> next;

        public Node(T value) {
            this.value = value;
        }
    }

    private Node<T> first;
    private Node<T> last;
    private int size;

    public void add(T element) {
        // создаю новый узел
        Node<T> newNode = new Node<>(element);
        if (size == 0) {
            first = newNode;
        } else {
            last.next = newNode;
        }
        last = newNode;
        size++;
    }

    public void addToBegin(T element) {
        Node<T> newNode = new Node<>(element);

        if (size == 0) {
            last = newNode;
        } else {
            newNode.next = first;
        }
        first = newNode;
        size++;
    }

    public int size() {
        return size;
    }


    public T get(int index) {
        if (index > -1 && index < size)
            return elements[index];
        else
            System.out.println("Invalid Index");
            return null;
    }
}

Как исправить мою ошибку ?

Как исправить мою ошибку ?


Ответы (1 шт):

Автор решения: and73

Вот рабочий код :

public class Main {
    public static void main(String[] args) {
        LinkedList<Integer> list = new LinkedList<>();
        list.add(34);
        list.add(120);
        list.add(-10);
        list.add(11);
        list.add(50);
        list.add(100);
        list.add(99);

        list.addToBegin(77);
        list.addToBegin(88);
        list.addToBegin(99);

        System.out.println(list.get(5));

    }
}

public class LinkedList<T> {

    private int index;
    private int counter;

    private static class Node<T> {
        T value;
        Node<T> next;

        public Node(T value) {
            this.value = value;
        }
    }

    private Node<T> first;
    private Node<T> last;
    private int size;

    public void add(T element) {
        // создаю новый узел
        Node<T> newNode = new Node<>(element);
        if (size == 0) {
            first = newNode;
        } else {
            last.next = newNode;
        }
        last = newNode;
        size++;
    }

    public void addToBegin(T element) {
        Node<T> newNode = new Node<>(element);

        if (size == 0) {
            last = newNode;
        } else {
            newNode.next = first;
        }
        first = newNode;
        size++;
    }

    public int size() {
        return size;
    }


    private boolean isEmpty(){
        int counter = 0;
        return false;
    }

    public T get(int index) {
        if (index < 0 || index >= size) {
            System.out.println("Invalid Index");
            return null;
        }

        Node<T> list = first;
        for (int i = 0; i < index; i++)
            list = list.next;

        return list.value;
    }

    public String toString() {
        LinkedList.Node<T> node = this.first;
        StringBuilder sb = new StringBuilder("[");
        for (int i = 0; i < size; i++) {
            sb = sb.append(node.value.toString() + " ");
            node = node.next;
        }
        sb = sb.append("]");
        return sb.toString();
    }
}
→ Ссылка