# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def reverseKGroup(self, head, k):
"""
:type head: ListNode
:type k: int
:rtype: ListNode
"""
if k==1 :
return head
m=self.getSize(head)
dummy=cur=prev=ListNode(0)
dummy.next=head
n=m/k
print k,m
for i in range(n):
for j in range(k):
tmp=head.next
head.next=prev
prev=head
head=tmp
oldhead=cur.next
cur.next=prev
prev=oldhead
prev.next=head
cur=prev
return dummy.next
def getSize(self,head):
n=0
while head:
n += 1
head = head.next
return n
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def reverseKGroup(self, head, k):
"""
:type head: ListNode
:type k: int
:rtype: ListNode
"""
if k==1 :
return head
m=self.getSize(head)
dummy=cur=prev=ListNode(0)
dummy.next=head
n=m/k
print k,m
for i in range(n):
for j in range(k):
tmp=head.next
head.next=prev
prev=head
head=tmp
oldhead=cur.next
cur.next=prev
prev=oldhead
prev.next=head
cur=prev
return dummy.next
def getSize(self,head):
n=0
while head:
n += 1
head = head.next
return n