19. Reverse Linked List II 🔥
Medium
Problem:
Input: head = [1,2,3,4,5], left = 2, right = 4
Output: [1,4,3,2,5]Solution:
class Solution:
def reverseBetween(self, head: [ListNode], left: int, right: int) -> [ListNode]:
if not head or left == right:
return head
root = start = ListNode(None)
root.next = head
# start, end
for _ in range(left - 1):
start = start.next
end = start.next
# reverse
for _ in range(right - left):
tmp, start.next, end.next = start.next, end.next, end.next.next
start.next.next = tmp
return root.nextLast updated