feat(528-swapping-nodes-in-a-ll): add py3 solution
This commit is contained in:
parent
da5d790d16
commit
2c0614e7df
23
0528_swapping-nodes-in-a-linked-list/README.md
Normal file
23
0528_swapping-nodes-in-a-linked-list/README.md
Normal file
@ -0,0 +1,23 @@
|
||||
You are given the `head` of a linked list, and an integer `k`.
|
||||
|
||||
Return _the head of the linked list after **swapping** the values of the_ `kth` _node from the beginning and the_ `kth` _node from the end (the list is **1-indexed**)._
|
||||
|
||||
**Example 1:**
|
||||
|
||||
![](https://assets.leetcode.com/uploads/2020/09/21/linked1.jpg)
|
||||
|
||||
Input: head = [1,2,3,4,5], k = 2
|
||||
Output: [1,4,3,2,5]
|
||||
|
||||
|
||||
**Example 2:**
|
||||
|
||||
Input: head = [7,9,6,6,7,8,3,0,9,5], k = 5
|
||||
Output: [7,9,6,6,8,7,3,0,9,5]
|
||||
|
||||
|
||||
**Constraints:**
|
||||
|
||||
* The number of nodes in the list is `n`.
|
||||
* `1 <= k <= n <= 105`
|
||||
* `0 <= Node.val <= 100`
|
17
0528_swapping-nodes-in-a-linked-list/python3/using_dict.py
Normal file
17
0528_swapping-nodes-in-a-linked-list/python3/using_dict.py
Normal file
@ -0,0 +1,17 @@
|
||||
# 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
|
Loading…
Reference in New Issue
Block a user