я хотел бы знать, как удалить любой п-й узел в LinkedList, например:удалить/удалить любой п-й узел в LinkedList Java
1-2-3-4-5-6- после удаления любого п = 2: 1-3-5- или n = 3: 1-2-4-5
спасибо!
я хотел бы знать, как удалить любой п-й узел в LinkedList, например:удалить/удалить любой п-й узел в LinkedList Java
1-2-3-4-5-6- после удаления любого п = 2: 1-3-5- или n = 3: 1-2-4-5
спасибо!
Если вы на Java 8 сделать следующим образом:
linkedList.removeIf((i) -> i % n == 0);
Пример:
int n = 2;
LinkedList<Integer> ll = new LinkedList<>(Arrays.asList(1,2,3,4,5,6));
ll.removeIf((i) -> i % n == 0);
System.out.println(ll);
нам все еще не разрешено использовать LinkedList
Я считаю, что путаница исходил из того, что это не было сделано совершенно ясно, что вы хотите удалить каждый n-й элемент, как это было в начальном списке, и я думаю, поэтому вопрос был опечатан.
Однако здесь один из способов сделать это:
public class ListRemover<T> {
public void removeEvery(int n, List<T> list) {
int i = 1;
int removeFrom = n - 1;
while (removeFrom < list.size()) {
list.remove(removeFrom);
++i;
removeFrom = n * i - i;
}
}
}
А вот тест на каждый второй и третий ebery удаления доказав его работы:
public class ListRemoverTest {
@Test
public void shouldRemoveEverySecondElement() throws Exception {
List<Integer> intList = IntStream.range(1, 10).boxed().collect(toList());
new ListRemover<Integer>().removeEvery(2, intList);
assertEquals(Arrays.asList(1, 3, 5, 7, 9), intList);
}
@Test
public void shouldRemoveEveryThirdElement() throws Exception {
List<Integer> intList = IntStream.range(1, 10).boxed().collect(toList());
new ListRemover<Integer>().removeEvery(3, intList);
assertEquals(Arrays.asList(1, 2, 4, 5, 7, 8), intList);
}
}
, нам все еще не разрешено использовать LinkedList
.remove (индекс) не работает ? – Loc
Javadoc: [remove (int index)] (http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html#remove (int)) –
Если вы не используете встроенный класс 'LinkedList', эта ссылка будет вам полезна (вам просто нужно обобщить для n> 2): http://www.geeksforgeeks.org/delete-alternate-nodes-of-a-linked-list/ –