鍊錶中的下乙個更大節點
給出乙個以頭節點 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...