Leetcode225 用佇列實現棧

2021-10-03 09:57:09 字數 630 閱讀 6162

使用佇列實現棧的下列操作:

說明:

思路:主要關鍵點在於掌握linkedlist 的常用函式,並對其按佇列和棧的特點進行功能組合。

class linkedlist傳送門

主要細節體現在push(),每當需要push乙個值進入到棧中時:

linklist會先把該值放在隊尾

把頭節點摘下(queue.remove())放在隊尾

對第二步迴圈(佇列長度-1)次

做完之後新加入的節點就會變成頭節點。

這樣做使得每次加入新元素都會按棧的順序重新排列順序。之後的pop和top用poll()peek()輸出或檢視頭節點即可。

class

mystack

public

void

push

(int x)

public

intpop()

public

inttop()

public

boolean

empty()

}

232 用棧實現佇列 225 用佇列實現棧

用棧實現佇列 佇列是先進先出,實現佇列的最直觀的方法是用鍊錶。但本題是要求使用棧。本題兩個stack相互倒,負負得正 class myqueue def init self self.instack self.outstack defpush self,x def pop self if len s...

力扣 225 用佇列實現棧

一 題目描述 使用佇列實現棧的下列操作 注意 二 解題思路 建立兩個佇列a和b。入棧 將新元素直接入a佇列即可。出棧 將a中的元素轉到b中,當a中只有乙個元素時,出隊即可。然後交換a和b的身份。取棧頂元素 將a中的元素轉到b中,當a中只有乙個元素時,取出最後乙個元素出隊,然後將其入b佇列。然後交換a...

力扣 225題用佇列實現棧

使用佇列實現棧的下列操作 push x 元素 x 入棧 pop 移除棧頂元素 top 獲取棧頂元素 empty 返回棧是否為空 注意 你只能使用佇列的基本操作 也就是 push to back,peek pop from front,size,和 is empty 這些操作是合法的。你所使用的語言也...