Упражнения на Java: меняйте местами каждые два соседних узла данного связанного списка
Java Basic: упражнение 180 с решением
Напишите программу Java, чтобы поменять местами каждые два смежных узла данного связанного списка.
Иллюстрированная презентация:
Пример решения:
Java-код:
import java.util.*;
public class Solution {
public static void main(String[] args) {
ListNode l = new ListNode(10);
l.next = new ListNode(20);
l.next.next = new ListNode(30);
l.next.next.next = new ListNode(40);
l.next.next.next.next = new ListNode(50);
System.out.println("\nOriginal Linked list:");
printList(l);
ListNode p = swap_Pairs(l);
System.out.println("\n\nAfter swiping Linked list becomes:");
printList(p);
}
public static ListNode swap_Pairs(ListNode head) {
ListNode temp = new ListNode(0);
temp.next = head;
head = temp;
while (head.next != null && head.next.next != null) {
ListNode a = head.next;
ListNode b = head.next.next;
head.next = b;
a.next = b.next;
b.next = a;
head = a;
}
return temp.next;
}
static void printList(ListNode p) {
while (p != null) {
System.out.print(p.val);
if (p.next != null) {
System.out.print("->");
}
p = p.next;
}
}
}
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
}
Пример вывода:
Оригинальный связанный список: 10-> 20-> 30-> 40-> 50 После смахивания связанный список становится: 20-> 10-> 40-> 30-> 50
Блок - схема:
Редактор кода Java:
Компания: Uber Microsoft Bloomberg
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на Java, чтобы получить новое двоичное дерево с той же структурой и тем же значением данного двоичного дерева.
Далее: Напишите программу на Java, чтобы найти длину последнего слова данной строки. Строка содержит прописные / строчные буквы алфавита и символы пробела ''.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code