TGViewer
C# | LeetCode C# | LeetCode @easy_c_sharp_task · 3.17K subscribers
Post #1468 315
Задача: №25. Reverse Nodes in k-Group
Сложность: hard

Учитывая заголовок связанного списка, поменяйте местами узлы списка k за раз и верните измененный список.

k — целое положительное число, меньшее или равное длине связанного списка. Если количество узлов не кратно k, то пропущенные узлы в конечном итоге должны остаться такими, какие они есть.

Вы не можете изменять значения в узлах списка, можно изменять только сами узлы.

Пример:
Input: head = [1,2,3,4,5], k = 2  
Output: [2,1,4,3,5]


👨‍💻 Алгоритм:

1⃣Пройти по списку, чтобы определить его длину.

2⃣Развернуть группы из k узлов, меняя ссылки, а не значения.

3⃣Если оставшиеся узлы менее k, оставить их без изменений.

😎 Решение:
public class Solution {
public ListNode ReverseKGroup(ListNode head, int k) {
if (head == null || k == 1) return head;

ListNode dummy = new ListNode(0);
dummy.next = head;
ListNode prevGroupEnd = dummy;

while (true) {
ListNode groupStart = prevGroupEnd.next;
ListNode groupEnd = prevGroupEnd;

for (int i = 0; i < k; i++) {
groupEnd = groupEnd.next;
if (groupEnd == null) return dummy.next;
}

ListNode nextGroupStart = groupEnd.next;
Reverse(groupStart, groupEnd);

prevGroupEnd.next = groupEnd;
groupStart.next = nextGroupStart;
prevGroupEnd = groupStart;
}
}

private void Reverse(ListNode start, ListNode end) {
ListNode prev = null, curr = start, next = null;
while (prev != end) {
next = curr.next;
curr.next = prev;
prev = curr;
curr = next;
}
}
}


Ставь 👍 и забирай 📚 Базу знаний
More from @easy_c_sharp_task
  1. Oct 16, 2026Задача: 1416. Restore The Array Сложность: hard Программа должна была напечатать массив це…
  2. Oct 15, 2026Задача: 217. Contains Duplicate Сложность: easy Дан массив целых чисел nums. Верните true,…
  3. Oct 15, 2026Задача: 759. Employee Free Time Сложность: hard Нам дан список schedule of employees, кото…
  4. Oct 14, 2026Задача: 583. Delete Operation for Two Strings Сложность: medium Даны две строки word1 и wo…
  5. Oct 14, 2026Задача: 1252. Cells with Odd Values in a Matrix Сложность: easy Имеется матрица m x n, кот…
  6. Oct 13, 2026Задача: 325. Maximum Size Subarray Sum Equals k Сложность: medium Дан целочисленный массив…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →