【剣指Offer】二叉木解題レポートをフォント順に印刷(Python)


【剣指Offer】二叉木解題レポートをフォント順に印刷(Python)
ラベル(スペース区切り):剣指Offer
タイトルアドレス:https://www.nowcoder.com/ta/coding-interviews
タイトルの説明:
1つの関数を実装して、2つのツリーをフォントに印刷します.すなわち、1行目は左から右、2層目は右から左、3行目は左から右の順に印刷します.他の行はこのようにします.
解題方法
階層遍歴のやり方は私たちはすべてできて、この問題は先に遍歴して、それから奇数層を反転する方法を使って、少し愚かですが、書くのが速いです.
コード:
# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    def Print(self, pRoot):
        if not pRoot: return []
        res = []
        self.level(pRoot, 0, res)
        for level in range(1, len(res), 2):
            res[level] = res[level][::-1]
        return res

    def level(self, root, level, res):
        if not root: return
        if level == len(res):
            res.append([])
        res[level].append(root.val)
        if root.left:
            self.level(root.left, level + 1, res)
        if root.right:
            self.level(root.right, level + 1, res)

Date
2018年3月28日–北京スモッグ+黄砂、なんてことだ.の