LinkedList Sinfi
Поясніть будь ласка мені тупому, що тут потрібно зробити, щоб хоча б один тест пройшов. Вже 8 разів відправляв і за всі спроби жоден тест не зарахувало. Купу разів переписував завдання, змінював результат функцій і т. д.. Дійшло до абсурду, якщо конкретніше Empty() повертала false при пустому списку, а size() в тій самій ситуації 1 замість 0.
Як завжди причина виявилась банальна. Потрібно було після виведення елементів списку зробити перехід на новий рядок. Навіть не знаю чи варто це вказувати в умові. З однієї сторони це лише моя помилка, а з іншої таке невелике уточнення допогло б мені та іншим, хто зіткнувся з такою проблемою, зберегти купу часу і нервів
Постояльцы форума знают ответ, на этот вопрос.
Треба уважливо читати завдання.
// 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();
}
}