Вот конкретные требования:
Обратные узлы в k-группы.
Если количество узлов не кратно k, остальные узлы в конце должны оставаться такими, какие они есть.
Решение должно быть на месте.
Например , учитывая связанный список 1 -> 2 -> 3 -> 4 -> 5 и k = 3, результат должен быть 3 -> 2 -> 1 -> 4 -> 5.
Вот упрощенная версия реализации моего связанного списка:
Код: Выделить всё
`
class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
public class ReverseKGroup {
public static ListNode reverseKGroup(ListNode head, int k) {
// Implement the logic here
}
public static void main(String[] args) {
ListNode head = new ListNode(1);
head.next = new ListNode(2);
head.next.next = new ListNode(3);
head.next.next.next = new ListNode(4);
head.next.next.next.next = new ListNode(5);
int k = 3;
ListNode newHead = reverseKGroup(head, k);
// Print the reversed list
while (newHead != null) {
System.out.print(newHead.val + " -> ");
newHead = newHead.next;
}
}
}
`
Подробнее здесь: https://stackoverflow.com/questions/786 ... ava-withou