Reverse a linked list from position m to n. Do it in-place and in one-pass.
For example:
Given 1->2->3->4->5->NULL, m = 2 and n = 4,
return 1->4->3->2->5->NULL.
class Solution(object):
def reverseBetween(self, head, m, n):
dummy = reverse_head = ListNode(None)
dummy.next = head
for i in range(m-1):
reverse_head = reverse_head.next
reverse_tail = reverse_head.next
for i in range(n-m):
head_next = reverse_head.next
tail_next = reverse_tail.next
reverse_head.next = tail_next
reverse_tail.next = tail_next.next
tail_next.next = head_next
return dummy.next
refer: clean python solution