1. 程式人生 > >劍指offer 23. 從上往下列印二叉樹

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

原題

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

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變數,每輪處理一輪,再加一輪,很巧妙。