劍指offer--面試題60:把二叉樹列印成多行
阿新 • • 發佈:2018-12-31
題目描述
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。
python實現:
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: # 返回二維列表[[1,2],[4,5]] def Print(self, pRoot): # write code here if pRoot is None: return [] from collections import deque queue = deque([pRoot]) curLevelNum = 1 result = [] tmpResult = [] while queue: front = queue.popleft() tmpResult.append(front.val) curLevelNum -= 1 if front.left: queue.append(front.left) if front.right: queue.append(front.right) if curLevelNum==0: curLevelNum = len(queue) #result.append(tmpResult) result.append(tmpResult[:]) tmpResult = [] return result