您的位置:首页 > 职场人生

剑指offer--面试题61:按之字形顺序打印二叉树

2016-09-28 16:33 525 查看


题目描述

请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。

python实现:

# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    def Print(self, pRoot):
        # write code here
        if pRoot is None:
            return []
        result = []
        tmpResult = []
        from collections import deque
        queue = deque([pRoot])
        curLevelNum = 1
        isEven = False
        while queue:
            while curLevelNum:
                front = queue.popleft()
                curLevelNum -= 1
                tmpResult.append(front.val)
                if front.left:
                    queue.append(front.left)
                if front.right:
                    queue.append(front.right)
            curLevelNum = len(queue)
            if isEven:
                result.append(tmpResult[::-1])
                isEven = False
            else:
                result.append(tmpResult[:])
                isEven = True
            tmpResult = []
        return result
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: