從上往下列印出二叉樹的每個節點,同層節點從左至右列印。
二叉樹的層級遍歷,定義乙個佇列和用於返回結果的list。每次遍歷到乙個節點時,將其從佇列裡pop出來,把節點的左子和右子分別放到隊尾,然後把該節點的值放入結果中。
#-*- 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
queue =[root]
ans =
while
queue:
node =queue.pop(0)
ifnode.left:
ifnode.right:
return ans
劍指offer 從上往下列印二叉樹
定義乙個佇列,依次加入佇列頭的子節點,並將佇列頭出佇列,知道隊列為空 coding utf 8 class treenode def init self,x self.val x self.left none self.right none class solution 返回從上到下每個節點值列表,...
劍指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...