Reverse Nodes in k-Group
LeetCode 25 • Hard • Linked Lists
Input: head = [1,2,3,4,5], k = 2 → Output: [2,1,4,3,5]. Reverse k nodes at a time, connect groups.
TimeO(n)
SpaceO(1)
group: 0
list: []
Ready
Press Play. Reverse k nodes at a time. Connect each reversed group to the next.
Practice until you don't need to look. Reverse k nodes, connect groups. Use dummy node.
PATTERN ▸ Reverse in groups, connect O(n) · O(1)
① HELPER: reverse(head, k) → new_head, new_tail, next
Reverse k nodes, return (head, tail, tail.next)
② MAIN
dummy = ListNode(0); prev_tail = dummy
while has k nodes: nh, nt, nxt = reverse(curr, k); prev_tail.next = nh; prev_tail = nt; curr = nxt
③ RETURN
return dummy.next
your implementation