18 lines
532 B
Python
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
|