Упражнения на Java: отменить заданный связанный список
Java Basic: упражнение 121 с решением
Напишите программу на Java, чтобы обратить заданный связанный список.
Пример: для связанного списка 20-> 40-> 60-> 80 обратный список связан с 80-> 60-> 40-> 20
Иллюстрированная презентация:
Пример решения:
Java-код:
class LinkedList {
static Node head;
static class Node {
int data;
Node next_node;
Node(int d) {
data = d;
next_node = null;
}
}
/* Reverse the linked list */
Node reverse(Node node) {
Node prev_node = null;
Node current_node = node;
Node next_node = null;
while (current_node != null) {
next_node = current_node.next_node;
current_node.next_node = prev_node;
prev_node = current_node;
current_node = next_node;
}
node = prev_node;
return node;
}
// Prints the elements of the double linked list
void printList(Node node) {
while (node != null) {
System.out.print(node.data + " ");
node = node.next_node;
}
}
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.head = new Node(20);
list.head.next_node = new Node(40);
list.head.next_node.next_node = new Node(60);
list.head.next_node.next_node.next_node = new Node(80);
System.out.println("Original Linked list:");
list.printList(head);
head = list.reverse(head);
System.out.println("");
System.out.println("Reversed Linked list:");
list.printList(head);
}
}
Пример вывода:
Оригинальный связанный список: 20 40 60 80 Перевернутый связанный список: 80 60 40 20
Блок - схема:
Редактор кода Java:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на Java, которая ищет значение в матрице mxn.
Далее: Напишите программу на Java, чтобы найти непрерывный подмассив с наибольшей суммой из заданного массива целых чисел.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code