Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yuanyu90221/go-code-problem-day2
https://github.com/yuanyu90221/go-code-problem-day2
Last synced: 16 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/yuanyu90221/go-code-problem-day2
- Owner: yuanyu90221
- Created: 2021-05-15T17:50:34.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-05-15T17:51:36.000Z (over 3 years ago)
- Last Synced: 2024-06-20T21:06:55.206Z (7 months ago)
- Language: Go
- Size: 1.95 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# go-code-problem-day2
## 題目描述
給定一個 linked list 的 head node,將指定區間內的節點反轉,並 return 新 linked list 的 head node。
指定區間之定義為: 第 m 個 node 到第 n 個 node 所形成的 linked list
Time complexity 要求: One-pass O(N)
Constraints:m and n are positive integers
1 <= m < n <= length of the linked list
Example 1:Input: Linked List = 6 -> 5 -> 4 -> 3 -> 2 -> 1, m = 2, n = 4
Output: 6 -> 3 -> 4 -> 5 -> 2 -> 1
Explanation: 將第二個 node 到第四個 node 所形成的 Linked List 反轉
Example 2:Input: Linked List = 6 -> 5 -> 4 -> 3 -> 2 -> 1, m = 2, n = 6
Output: 6 -> 1 -> 2 -> 3 -> 4 -> 5
Explanation: 將第二個 node 到第六個 node 所形成的 Linked List 反轉## 題目分析
給定一個 linked List 的 head node h, 將指定區間內的node反轉, 並且 return 新的 linked list的 head node
首先需要找出起始跟結束結點的指標 以及前一個結點
建立一個 stack 利用 stack FILO的特性來 重建 sub Linked lisk的順序
然後判斷是否 m=1 如果是 則 回傳sub LinkedList 否則回傳原本的 head