【剣指Offer】二叉木解題レポートをフォント順に印刷(Python)
【剣指Offer】二叉木解題レポートをフォント順に印刷(Python)
ラベル(スペース区切り):剣指Offer
タイトルアドレス:https://www.nowcoder.com/ta/coding-interviews
タイトルの説明:
1つの関数を実装して、2つのツリーをフォントに印刷します.すなわち、1行目は左から右、2層目は右から左、3行目は左から右の順に印刷します.他の行はこのようにします.
解題方法
階層遍歴のやり方は私たちはすべてできて、この問題は先に遍歴して、それから奇数層を反転する方法を使って、少し愚かですが、書くのが速いです.
コード:
Date
2018年3月28日–北京スモッグ+黄砂、なんてことだ.の
ラベル(スペース区切り):剣指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日–北京スモッグ+黄砂、なんてことだ.の