Reference: LeetCode EPI 7.2
Difficulty: Hard

## Problem

Given a linked list, reverse the nodes of a linked list $k$ at a time and return its modified list.

$k$ is a positive integer and is less than or equal to the length of the linked list. If the number of nodes is not a multiple of $k$ then left-out nodes in the end should remain as it is.

Note:

• Only constant extra memory $O(1)$ is allowed.
• You may not alter the values in the list’s nodes, only nodes itself may be changed.

Example:

## Analysis

### Iteration

Calculate how many groups should be reversed. Reverse each group’s nodes.

Time: $O(N)$
Space: $O(1)$

Comment
Junhao Wang
Hi, I was a master student at USC studying Computer Science.