23從上往下列印二叉樹python
題目:從上往下打印出二叉樹的每個節點,同層節點從左至右列印。
思路:用一個臨時陣列儲存需要列印的節點,如列印8時,將6和10存入臨時陣列
class Solution:
# 返回從上到下每個節點值列表,例:[1,2,3]
def PrintFromTopToBottom(self, root):
# 設定答案集合ans 臨時陣列temp,使用temp儲存需要列印的節點
if not root:
return []
ans = []
temp = []
temp.append(root)
while temp:
currentRoot = temp.pop(0) #獲當前取需要列印的節點
ans.append(currentRoot.val)
if currentRoot.left: #將左右子節點存入temp等待列印
temp.append(currentRoot.left)
if currentRoot.right:
temp.append(currentRoot.right)
return ans