почему эти JAVA коды (DoublyLinkedList) являются ошибкой, stackOverflow - PullRequest
0 голосов
/ 10 марта 2020

Я не знаю, почему это переполнение стека

Сообщение об ошибке это

Exception in thread "main" java.lang.StackOverflowError
    at java.lang.AbstractStringBuilder.append(Unknown Source)
    at java.lang.StringBuilder.append(Unknown Source)
    at java.lang.StringBuilder.<init>(Unknown Source)
    at linkedList.Node.toString(DoublyLinkedList.java:15)
    at java.lang.String.valueOf(Unknown Source)
    at java.lang.StringBuilder.append(Unknown Source)

, а затем снова и снова одни и те же сообщения

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

это для создания двусвязного списка.

когда я комментировал //tail.next = newOne; или //newOne.prev = tail;

работает

спасибо.

class Node{
    String val;
    Node next;
    Node prev;

    public Node(String val){
        this.val = val;
        this.next = null;
        this.prev = null;
    }

    @Override
    public String toString() {
        return "Node [val=" + val + ", next=" + next + ", prev=" + prev + "]";
    }

}

public class DoublyLinkedList {
    Node head;
    Node tail;
    int length;
    LinkedList<Integer> aa = new LinkedList<>();


    public DoublyLinkedList() {
        this.head = null;
        this.tail = null;
        this.length = 0;
    }

    public static void main(String[] args) {
        DoublyLinkedList dd = new DoublyLinkedList();
        dd.push("asdad");
        dd.push("wwwwwww");
        System.out.println(dd.toString());
    }

    public void push(String val) {
        Node newOne = new Node(val);
        if(length == 0) {
            head = newOne;
            tail = newOne;
        } else {
            tail.next = newOne;
            newOne.prev = tail;
            tail = newOne;
        }

        length++;
    }

    @Override
    public String toString() {
        return "DoublyLinkedList [head=" + head + ", tail=" + tail + ", length=" + length + "]";
    }

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