JAVA. Односвязный список

preview_player
Показать описание

Рекомендации по теме
Комментарии
Автор

Правильный removeAt()

public void removeAt(int key) {
LinkList cur = head;
LinkList prev = head;

while(cur != null && cur.key != key){
prev = cur;
cur = cur.next;
}
if (cur != null) {
if (cur == head) {
head = head.next;
}
else
{
prev.next = cur.next;
}
}
}

ИльяГопак
Автор

Скажите пожалуйста, как вставить какое небуть число, например 10, перед каждым числом, равным 15 ?

vladbohdanets
Автор

В целом хороший урок. Но вот с удалением, что-то не то. У меня вместо int правда String. Но это не имеет значения. Почему-то корректно удаляет только второй элемент (под номером один), остальное абракадабка. На видео, кстати, тоже удаляется второй элемент.

ruslanzubkov
Автор

Спасибо большое за урок. Могли бы Вы ответить чем односвязный список отличается от ArrayList()? Какой физический смысл ссылок на следующий элемент? И LinkedList() - не есть ли это тот же односвязный список? Спасибо

Victor-ywml
Автор

Подскажите пож-та метод добавления нового элемента в конец списка.

Victor-ywml
Автор

Логика странная. Только запутался. И кстати, если удаляем последний элемент, то есть 10, то удаляется все равно 20.

КонстантинСухопаров-съ
Автор

Подскажите, пожалуйста, как можно удалить несколько элементов сразу, начиная с заданного(например, начиная с 20 и до конца списка)

grny
Автор

Подскажите а как удалить узел по индексу позиции? то есть есть узлы с индексами : 0 1 2 с любой  информацией, я указываю что хочу убрать индекс 1, и теперь индекс 0 указывает на индекс 2 и индекс 1 полностью удален

makarovdmitrii
Автор

Немножко попотел и исправил удаление данного элемента
Однако код стал побольше, и пришлось добавить булеву переменную private Boolean {bool = true;} в начало класса

public void removeAt(int key)
{
bool = true;
if (isEmpty())
{
System.out.println("Лист пуст");
return;
}
LinkList cur = head;
LinkList prev = head;
if (cur.data == key)
{
cur = cur.next;
head = cur;
bool = false;
}
while(bool)
{
if(cur.next == null)
{
System.out.println("Искомый элемент отсутствует");
bool = false;
return;
}
prev = cur;
cur = cur.next;
if (cur.data == key)
{
if(cur.next == null) prev.next = null;
else
{
cur = cur.next;
prev.next = cur;
}
bool = false;
}
}
}

andrey
Автор

а что означает next ? Для чего он предназначен ?

vasilyaasyanova