Reverse Linked List II
Problem page:https://leetcode.com/problems/reverse-linked-list-ii
Solution
class Solution:
def reverseBetween(self, head: Optional[ListNode], left: int, right: int) -> Optional[ListNode]:
if not head or left == right:
return head
sentinel = ListNode(0,head)
pre = sentinel
for _ in range(left - 1):
pre = pre.next
cur = pre.next
for _ in range(right - left):
temp = cur.next
cur.next = temp.next
temp.next = pre.next
pre.next = temp
return sentinel.next
Complexity
- time: O(n)
- space: O(1)