MCPcopy Create free account
hub / github.com/neetcode-gh/leetcode / reverseBetween

Method reverseBetween

python/0092-reverse-linked-list-ii.py:2–23  ·  view source on GitHub ↗
(
        self, head: Optional[ListNode], left: int, right: int
    )

Source from the content-addressed store, hash-verified

1class Solution:
2 def reverseBetween(
3 self, head: Optional[ListNode], left: int, right: int
4 ) -> Optional[ListNode]:
5 dummy = ListNode(0, head)
6
7 # 1) reach node at position "left"
8 leftPrev, cur = dummy, head
9 for i in range(left - 1):
10 leftPrev, cur = cur, cur.next
11
12 # Now cur="left", leftPrev="node before left"
13 # 2) reverse from left to right
14 prev = None
15 for i in range(right - left + 1):
16 tmpNext = cur.next
17 cur.next = prev
18 prev, cur = cur, tmpNext
19
20 # 3) Update pointers
21 leftPrev.next.next = cur # cur is node after "right"
22 leftPrev.next = prev # prev is "right"
23 return dummy.next

Callers

nothing calls this directly

Calls 1

ListNodeClass · 0.70

Tested by

no test coverage detected