所有題目源**:git位址
題目
給出乙個以頭節點 head 作為第乙個節點的鍊錶。鍊錶中的節點分別編號為:node_1, node_2, node_3,..
. 。(node_i) 是 node_j.val,那麼就有 j > i 且 node_j.val > node_i.val,而 j 是可能的選項中最小的那個。如果不存在這樣的 j,那麼下乙個更大值為 0 。
返回整數答案陣列 answer,其中 answer[i]
=next_larger
(node_
) 。注意:在下面的示例中,諸如 [2,
1,5] 這樣的輸入(不是輸出)是鍊錶的序列化表示,其頭節點的值為 2,第二個節點值為 1,第三個節點值為 5 。
示例 1:
輸入:[2,
1,5]
輸出:[5,
5,0]
示例 2:
輸入:[2,
7,4,
3,5]
輸出:[7,
0,5,
5,0]
示例 3:
輸入:[1,
7,5,
1,9,
2,5,
1]輸出:[7,
9,9,
9,0,
5,0,
0]對於鍊錶中的每個節點,1
<= node.val <=10^
9給定列表的長度在 [0,
10000
] 範圍內
方案:/**
* definition for singly-linked list.
* struct listnode
* };
*/class
solution
vector<
int>
res(count,0)
; tmp = head;
count =0;
while
(tmp != null)
s.push
(tmp-
>val)
; index.
push
(count)
; count++
; tmp = tmp-
>next;
}return res;}}
;
複雜度計算 C語言重構 328 奇偶鍊錶
所有題目源 git位址 題目給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o 1 時間複雜度應為 o nodes nodes 為節點總數。示例 1 輸入 1...
C語言重構 143 重排鍊錶
所有題目源 git位址 題目給定乙個單鏈表 l l0 l1 ln 1 ln 將其重新排列後變為 l0 ln l1 ln 1 l2 ln 2 你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。示例 1 給定鍊錶 1 2 3 4,重新排列為 1 4 2 3.示例 2 給定鍊錶 1 2 3 4...
C語言重構 24 兩兩交換鍊錶中的節點
所有題目源 git位址 題目給定乙個鍊錶,兩兩交換其中相鄰的節點,並返回交換後的鍊錶。你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。示例 1 輸入 head 1 2,3 4 輸出 2,1,4,3 示例 2 輸入 head 輸出 示例 3 輸入 head 1 輸出 1 鍊錶中節點的數目...