舉例讓抽象具體化 從上往下列印出二叉樹

2021-09-12 02:17:25 字數 844 閱讀 2463

從上往下列印出二叉樹的每個節點,同層節點從左至右列印。

思路:使用佇列儲存,每次把佇列裡的原來內容進行出佇列操作。接下來把每個元素的非空左右子節點進入佇列。即可以得到每層的遍歷。

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 題目描述 輸入乙個整數陣列,...