劍指offer 23. 從上往下列印二叉樹
阿新 • • 發佈:2018-11-06
原題
從上往下打印出二叉樹的每個節點,同層節點從左至右列印。
Reference Answer
解題思路:
思路:用一個臨時陣列儲存需要列印的節點,如列印8時,將6和10存入臨時陣列
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# 返回從上到下每個節點值列表,例:[1,2,3]
def PrintFromTopToBottom(self, root):
# write code here
if not root:
return []
temp = []
res = []
temp.append(root)
while temp:
temp_count = temp.pop(0)
res.append(temp_count.val)
if temp_count.left:
temp. append(temp_count.left)
if temp_count.right:
temp.append(temp_count.right)
return res
Note
這道題解題方式很巧妙,題目本意是一種二叉樹遍歷,但是若是想分層遍歷,採用將下一輪結果存在temp
變數,每輪處理一輪,再加一輪,很巧妙。