eolymp
bolt
Try our new interface for solving problems
Məsələlər

LinkedList Sinfi

dərc olunub 08.09.20 05:05:21

Поясніть будь ласка мені тупому, що тут потрібно зробити, щоб хоча б один тест пройшов. Вже 8 разів відправляв і за всі спроби жоден тест не зарахувало. Купу разів переписував завдання, змінював результат функцій і т. д.. Дійшло до абсурду, якщо конкретніше Empty() повертала false при пустому списку, а size() в тій самій ситуації 1 замість 0.

Як завжди причина виявилась банальна. Потрібно було після виведення елементів списку зробити перехід на новий рядок. Навіть не знаю чи варто це вказувати в умові. З однієї сторони це лише моя помилка, а з іншої таке невелике уточнення допогло б мені та іншим, хто зіткнувся з такою проблемою, зберегти купу часу і нервів

dərc olunub 31.08.21 06:51:38

Постояльцы форума знают ответ, на этот вопрос.

dərc olunub 19.08.23 16:49:20

Треба уважливо читати завдання.

dərc olunub 03.04.24 02:52:02

// Java class ListNode { int data; ListNode next;

public ListNode(int data) {
    this.data = data;
    this.next = null;
}

}

class LinkedList { ListNode head, tail;

public LinkedList() {
    this.head = null;
    this.tail = null;
}

public boolean Empty() {
    return head == null;
}

public void addFirst(int val) {
    ListNode newNode = new ListNode(val);
    if (Empty()) {
        head = newNode;
        tail = newNode;
    } else {
        newNode.next = head;
        head = newNode;
    }
}

public void addLast(int val) {
    ListNode newNode = new ListNode(val);
    if (Empty()) {
        head = newNode;
        tail = newNode;
    } else {
        tail.next = newNode;
        tail = newNode;
    }
}

public boolean removeFirst() {
    if (Empty()) {
        return false;
    }
    if (head == tail) {
        head = null;
        tail = null;
    } else {
        head = head.next;
    }
    return true;
}

public boolean removeLast() {
    if (Empty()) {
        return false;
    }
    if (head == tail) {
        head = null;
        tail = null;
    } else {
        ListNode current = head;
        while (current.next != tail) {
            current = current.next;
        }
        current.next = null;
        tail = current;
    }
    return true;
}

public int size() {
    int count = 0;
    ListNode current = head;
    while (current != null) {
        count++;
        current = current.next;
    }
    return count;
}

public void Print() {
    ListNode current = head;
    while (current != null) {
        System.out.print(current.data + " ");
        current = current.next;
    }
    System.out.println();
}

}