鍊錶中的下乙個更大節點

2022-03-23 15:47:41 字數 1087 閱讀 9939

給出乙個以頭節點 head 作為第乙個節點的鍊錶。鍊錶中的節點分別編號為:node_1, node_2, node_3, ... 。

每個節點都可能有下乙個更大值(next larger value):對於 node_i,如果其 next_larger(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] 範圍內

解法1:

public

static

int nextlargernodes2(listnode head)

else

/*儲存節點的值

*/headlist.add(itr.val);

/*移向下乙個節點

*/itr =itr.next;

}/*構建陣列

*/int re = new

int[count];

inti;

int j = 0;

for (i = count - 2; i >= 0; i--)

else

indexlist.set(i, j);

re[i] = (j == 0) ? 0: headlist.get(j);}}

return

re; }

view code

鍊錶中的下乙個更大節點

給出乙個以頭節點 head 作為第乙個節點的鍊錶。鍊錶中的節點分別編號為 node 1,node 2,node 3,每個節點都可能有下乙個更大值 next larger value 對於 node i,如果其 next larger node i 是 node j.val,那麼就有 j i 且 no...

386,鍊錶中的下乙個更大節點

給乙個鍊錶,返回每個節點下乙個比他大的值,如果不存在就返回0 示例 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 問題分析這題和382,每日溫度的5種解題思路...

1019 鍊錶中的下乙個更大節點

題目描述 給出乙個以頭節點 head 作為第乙個節點的鍊錶。鍊錶中的節點分別編號為 node 1,node 2,node 3,每個節點都可能有下乙個更大值 next larger value 對於 node i,如果其 next larger node i 是 node j.val,那麼就有 j i...