링크
연결리스트를 k 길이의 그룹들로 나눠 reverse 하는 문제, 단 O(1) 메모리
def reverseKGroup(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:
n = 0
tmp = head
while tmp:
n += 1
tmp = tmp.next
res = None
prevStart = None
for _ in range(n // k):
prev = None
start = head
for _ in range(k):
nextNode = head.next
head.next = prev
prev = head
head = nextNode
if not res:
res = prev
prevStart = start
else:
prevStart.next = prev
prevStart = start
prevStart.next = head
return res