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

2021-10-07 21:11:53 字數 965 閱讀 1216

鍊錶中的下乙個更大節點

給出乙個以頭節點 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、先將所有元素存到vector中。

2、從最末尾一位開始向前遍歷,每經過一位和棧中的元素比較,是否當前元素比棧頂元素小,如果小,那麼彈出,直到空棧為止。

3、把當前元素壓入棧中。

4、如果棧空,設定vector值為0,不然為top()的值。

class

solution

for(

int i = now.

size()

-1;i >=

0;i --)if

(s.empty()

)else

s.push

(temp);}

return now;}}

;

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

這個題目我第一次看到太簡單了吧,暴力就完事了,果不其然,時間複雜度很高,當然結果也是過了,沒什麼難度 public int nextlargernodes listnode head p p.next if p null result.add 0 head head.next int finalre...

leetcode 鍊錶 回文鍊錶

請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?head null 空鍊錶,回文,返回true head.next null 只有乙個節點的列表,回文,返回tru...

leetcode 鍊錶 回文鍊錶

請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2輸出 false示例 2 輸入 1 2 2 1輸出 true高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?思路 利用快慢指標找到中間節點,當快指標走到末尾時,慢指標指向中間節點 交中間節點之後的節點進行鍊錶反轉 設定指標p1從h...