從上往下列印出二叉樹的每個節點,同層節點從左至右列印。
思路:使用佇列儲存,每次把佇列裡的原來內容進行出佇列操作。接下來把每個元素的非空左右子節點進入佇列。即可以得到每層的遍歷。
python實現
// an highlighted block
from collections import deque
class
solution
: # 返回從上到下每個節點值列表,例:[1,
2,3]
def printfromtoptobottom
(self, root)
: # write code here
if not root:
return
queue =
deque()
res =
queue.
(root)
while queue:
_len =
len(queue)
for i in
range
(_len)
: node = queue.
popleft()
res.
(node.val)
if node.left:
queue.
(node.left)
if node.right:
queue.
(node.right)
return res
鏈結:[https:
劍指offer 舉例讓抽象具體化
問題描述 定義棧的資料結構,請在該型別中實現乙個能夠得到棧中所含最小元素的 min 函式 時間複雜度應為 o 1 注意 保證測試中不會當棧為空的時候,對棧呼叫 pop 或者 min 或者 top 方法。const datastack 棧 const minstack 儲存棧中最小的元素 functi...
劍指offer 演算法 (舉例讓抽象具體化)
題目描述 定義棧的資料結構,請在該型別中實現乙個能夠得到棧最小元素的min函式。在該棧中,呼叫min,push,pop的時間複雜度都是o 1 解析 首先是乙個棧,這個棧已經是最常見的那種,我們需要改造它使它能夠在o 1 時間內返回最小元素,剛開始的思路是往棧裡面新增乙個元素放在stack的頂部,表示...
劍指offer 演算法 (舉例讓抽象具體化)
題目描述 從上往下列印出二叉樹的每個節點,同層節點從左至右列印。解析 從上往下遍歷 root結點 左結點 右結點 每遍歷乙個依次存入佇列 由佇列的先進先出 依次便可逐層存結點入陣列中 struct treenode class solution return array 題目描述 輸入乙個整數陣列,...