Упражнения на Java: удаление n-го элемента из конца данного списка
Java Basic: упражнение 145 с решением
Напишите программу на Java для удаления n-го элемента из конца данного списка.
Иллюстрированная презентация:
Пример решения:
Java-код:
import java.util.*;
public class Solution {
public static void main(String[] args) {
ListNode h = new ListNode(1);
h.next = new ListNode(2);
h.next.next = new ListNode(3);
h.next.next.next = new ListNode(4);
h.next.next.next.next = new ListNode(5);
ListNode o = h;
System.out.println("Original node:");
while (o != null) {
System.out.print(o.val + " ");
o = o.next;
}
System.out.println("\nAfter removing 2nd element from end:");
ListNode head = removeNthFromEnd(h, 2);
while (head != null) {
System.out.print(head.val + " ");
head = head.next;
}
}
public static ListNode removeNthFromEnd(ListNode head, int n) {
ListNode p = head;
int size = 0;
while (p != null) {
size++;
p = p.next;
}
if (n == size) {
head = head.next;
} else {
int index = size - n;
ListNode t = head;
while (index > 1) {
t = t.next;
index--;
}
t.next = t.next.next;
}
return head;
}
}
class ListNode {
int val;
ListNode next;
ListNode(int val) {
this.val = val;
this.next = null;
}
}
Пример вывода:
Исходный узел: 1 2 3 4 5 После удаления 2-го элемента с конца: 1 2 3 5
Блок - схема:
Редактор кода Java:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на Java, чтобы удалить все вхождения указанного значения в заданном массиве целых чисел и вернуть новую длину массива.
Далее: Напишите программу на Java для преобразования отсортированного массива в двоичное дерево поиска. Поддерживать минимальную высоту дерева.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code