Leetcode # 92. Reverse Linked List II

https://leetcode.com/problems/reverse-linked-list-ii/

Solution

注意和 Leetcode # 206. Reverse Linked List 相同的多重賦值順序問題

Time Complexity: O(n)
Space Complexity: O(1)

class Solution:
  def reverseBetween(self, head: Optional[ListNode], left: int, right: int) -> Optional[ListNode]:
    i = 1
    pre, cur = None, head
    left_minus_1 = left - 1
    while cur:      
      if i > left and i <= right:
        final_node, final_node_next = cur, cur.next
        cur.next, cur, pre = pre, cur.next, cur
      else:
        if i == left:
          pre_node, first_node, final_node, final_node_next = pre, cur, cur, cur.next
        pre, cur = cur, cur.next  

      i += 1
    
    first_node.next = final_node_next
    if pre_node:
      pre_node.next = final_node
    else:
      head = final_node
      
    return head

Last Updated on 2023/08/16 by A1go

目錄

目錄
Bitnami