题目
12345678
k=2, 21436587
k=3, 32165478
思路
第一个for循环先找到第一个k的end index,然后反转这一段字符串,反转的过程中,再找到下一段的截至位置,重复下去。
代码
def reverse_kpair(link,k):
head = link.head
head_next = head
for i in range(k):
if head_next is None:
return head
head_next = head_next.next
ret = head_next
current = head.next
while head_next is not None:
tail = current
pre = Node()
for i in range(k):
if head_next is not None:
head_next = head_next.next
nest = current.next
current.next = pre
pre = current
current = nest
tail.next = head_next
if head_next is None:
tail.next = current
return ret