【Leetcode解題】237. Delete Node in a Linked List
題目
- 題目連結
- 目標函式 :
deleteNode(grid, k)- ListNode 格式 :
1
2
3
4class ListNode(object):
def __init__(self, x):
self.val = x
self.next = None - Input :
node: ListNode - Output :
void, Do not return anything, modify node in-place instead.
- ListNode 格式 :
解題概念
- 題意 : 給予一 Linked List 上的節點
node,將其刪除後把頭尾相接
我的寫法
- 想法 :
- 把
node.next的val複製到node上,再把node往後移,以此類推 - 快遇到結尾時,再做特殊處理
- 把
- 程式碼 :
1
2
3
4
5
6
7while node.next != None:
node.val = node.next.val
if node.next.next == None: //快遇到結尾
node.next = None
return
else:
node = node.next - 成效 :
- Time Complexity : $\color{DB4D6D}{O(n)}$
- Runtime: 42 ms (faster than 60.94%)
- Memory Usage: 13.6 M (less than 81.20%)
解答 or 其他優秀寫法
- 想法 :
- 原本的樣子

- 複製
val
- 處理連接線

- 原本的樣子
- 程式碼 :
1
2node.val = node.next.val
node.next = node.next.next - 成效 :
- Time Complexity : $\color{DB4D6D}{O(1)}$
- Runtime: 43 ms (faster than 57.94%)
- Memory Usage: 13.8 M (less than 26.42%)
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Robin's Tech Blog!


