removeAt
который удаляет element
по заданному index
. Метод следует называть removeAt(index)
. Чтобы удалить element
с определенным index
, нам нужно сохранить количество запусков каждого узла при перемещении по связанному списку. Обычный метод, используемый для итерации через элементы связанного списка, включает в себя «бегун» или дозорный, который «указывает» на узлы, которые сравнивает ваш код. В нашем случае, начиная с head
нашего списка, мы начинаем с переменной currentIndex
которая начинается с 0
. currentIndex
должен увеличиваться на единицу для каждого проходящего узла. Так же, как наш метод remove(element)
, мы должны быть осторожны, чтобы не осилить остальную часть нашего списка, когда мы удаляем узел в нашем методе removeAt (index). Мы держим наши узлы смежными, убедившись, что узел, имеющий ссылку на удаленный узел, имеет ссылку на следующий узел.
removeAt(index)
который удаляет и возвращает узел с заданным index
. Метод должен возвращать значение null
если данный index
либо отрицательный, либо больше или равен length
связанного списка. Примечание. Не забудьте сохранить счетчик currentIndex
.
LinkedList
class should have a removeAt
method.
testString: assert((function(){var test = new LinkedList(); return (typeof test.removeAt === 'function')}()));
- text: Your removeAt
method should reduce the length
of the linked list by one.
testString: assert((function(){var test = new LinkedList(); test.add('cat'); test.add('dog'); test.add('kitten'); test.removeAt(1); return test.size() === 2}()));
- text: Your removeAt
method should remove the element at the specified index from the linked list.
testString: assert((function(){var test = new LinkedList(); test.add('cat'); test.add('dog'); test.add('kitten'); test.add('bird');test.removeAt(1); return JSON.stringify(test.head()) === '{"element":"cat","next":{"element":"kitten","next":{"element":"bird","next":null}}}'}()));
- text: When only one element is present in the linked list, your removeAt
method should remove and return the element at specified index, and reduce the length of the linked list.
testString: assert((function(){var test = new LinkedList(); test.add('cat'); var removedItem = test.removeAt(0); return test.head() === null && test.size() === 0 && removedItem === 'cat';}()));
- text: Your removeAt
method should return the element of the removed node.
testString: assert((function(){var test = new LinkedList(); test.add('cat'); test.add('dog'); test.add('kitten'); return test.removeAt(1) === 'dog'}()));
- text: Your removeAt
method should return null
and the linked list should not change if the given index is less than 0
.
testString: assert((function(){var test = new LinkedList(); test.add('cat'); test.add('dog'); test.add('kitten'); var removedItem = test.removeAt(-1); return removedItem === null && JSON.stringify(test.head()) === '{"element":"cat","next":{"element":"dog","next":{"element":"kitten","next":null}}}'}()));
- text: Your removeAt
method should return null
and the linked list should not change if the given index is greater than or equal to the length
of the list.
testString: assert((function(){var test = new LinkedList(); test.add('cat'); test.add('dog'); test.add('kitten'); var removedItem = test.removeAt(3); return removedItem === null && JSON.stringify(test.head()) === '{"element":"cat","next":{"element":"dog","next":{"element":"kitten","next":null}}}'}()));
```