leetcode : Rotate List
runtime 6 ms, beats 92.60% of cpp submissions
O(n) solution with explanation
tags:
🔗 link
📖 description
給定一個 linked list 以及一個需要旋轉的次數 k,請求將 list 向右旋轉 k 次。
實際方法如下。
ex. Input: head = [1,2,3,4,5], k = 2 Output: [4,5,1,2,3]
🧠 solution
本題只有一個需要注意的地方,就是不要真的去模擬真實的流程,可以藉由一些方法來簡化步驟。
- 假設 list 的長度為 n ,則經過 n 次旋轉後 list 會回復原狀
- 當有 k 次需要旋轉時,我們只需要把 n-k 位置的點當作 list 的尾巴
⏳ time complexity
遍歷兩次 list ,時間複雜度 O(n)
總時間複雜度 O(n)
📝 code
1 | class Solution { |