1. 程式人生 > >劍指offer--面試題60:把二叉樹列印成多行

劍指offer--面試題60:把二叉樹列印成多行

題目描述

從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。

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