leetcode/0528_swapping-nodes-in-a-linked-list/python3/using_dict.py

18 lines
532 B
Python

# NOTE: Not the best approach, since we use O(N) space
# Time: O(N)
class Solution:
def swapNodes(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:
# Figure out length of LL and cache nodes by the index
length = 0
cache = {}
ptr = head
while ptr != None:
cache[length] = ptr
length += 1
ptr = ptr.next
cache[k - 1].val, cache[length - k].val = cache[length - k].val, cache[k - 1].val
return head