C語言重構 1019 鍊錶中的下乙個更大節點

2021-10-21 18:07:43 字數 1226 閱讀 7811

所有題目源**: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 鍊錶中節點的數目...