# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def reverseBetween(self, head, m, n):
"""
:type head: ListNode
:type m: int
:type n: int
:rtype: ListNode
"""
if m == n:
return head
split_node, prev, curr = None, None, head
count = 1
while count <= m and curr is not None:
if count == m:
split_node = prev
prev = curr
curr = curr.next
count += 1
tail, next_node = prev, None
while curr is not None and count <= n:
next_temp = curr.next
curr.next = prev
prev = curr
curr = next_temp
count += 1
if split_node is not None:
split_node.next = prev
if tail is not None:
tail.next = curr
if m == 1:
return prev
return head
Download Reverse Linked Lis II.pyLeetcode 092 Reverse Linked Lis II problem solution in python3 with explanation. This is the best place to expand your knowledge and get prepared for your next interview.
Feedback is the most important part of any website.
If you have any query, suggestion or feedback, Please feel free to contact us.