head of a singly linked list and two integers
left <= right, reverse the nodes of the list from position
left to position
right, and return the reversed list.
Input: head = [1,2,3,4,5], left = 2, right = 4 Output: [1,4,3,2,5]
Input: head = , left = 1, right = 1 Output: 
- The number of nodes in the list is
1 <= n <= 500
-500 <= Node.val <= 500
1 <= left <= right <= n
Follow up: Could you do it in one pass?
# Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def reverseBetween(self, head: ListNode, left: int, right: int) -> ListNode: dummy = ListNode(0) dummy.next = head leftportion = dummy for _ in range(left-1): leftportion = leftportion.next curr = leftportion.next x = curr prev = None for _ in range(right-left+1): nex = curr.next curr.next = prev prev,curr = curr,nex leftportion.next = prev x.next = nex return dummy.next