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.
Given this linked list:
For k = 2, you should return:
For k = 3, you should return:
- Only constant extra memory is allowed.
- You may not alter the values in the list's nodes, only nodes itself may be changed.