劍指offer 從上往下列印二叉樹

2021-08-16 05:08:10 字數 587 閱讀 6083

定義乙個佇列,依次加入佇列頭的子節點,並將佇列頭出佇列,知道隊列為空

# -*- coding:utf-8 -*-

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

solution:

# 返回從上到下每個節點值列表,例:[1,2,3]

defprintfromtoptobottom

(self, root):

# write code here

ifnot root:

return

q=[root]

ans=

while q:

node=q.pop(0)

#左結點加入佇列

if node.left:

#右結點加入佇列

if node.right:

return ans

劍指offer 從上往下列印二叉樹

題目描述 從上往下列印出二叉樹的每個節點,同層節點從左至右列印。其實就是二叉樹的層序遍歷 遍歷結果 a b c d e f g h 先存進去的節點先列印,這樣的特性不就和佇列fifo的特性相同了嗎?處理的方法就是將二叉樹的節點從上到下,從左到右的存入佇列中,然後逐個列印。struct treenod...

劍指offer 從上往下列印二叉樹

從上往下列印出二叉樹的每個節點,同層節點從左至右列印。二叉樹的廣度優先遍歷 struct treenode class solution return res 說到遍歷,dfs的遞迴和非遞迴寫法非常熟悉,我心血來潮,覺得bfs的遞迴寫法好像很陌生啊,於是開始寫 void bfs treenode r...

劍指offer 從上往下列印二叉樹

從上往下列印出二叉樹的每個節點,同層節點從左至右列印。用乙個佇列就可以解決。struct treenode class solution return result 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。struct treenode class solution if p...