Python:按之字形順序打印二叉樹


牛客網上的劍指 offer的在線編程:

題目描述

請實現一個函數按照之字形打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右至左的順序打印,第三行按照從左到右的順序打印,其他行以此類推。
# -*- 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 not pRoot: return []
        res, tree, left_right = [], [pRoot], True
        while tree:
            sub_tree, row = [], []
            for item in tree:
                row.append(item.val)
                if item.left:
                    sub_tree.append(item.left)
                if item.right:
                    sub_tree.append(item.right)
            if left_right:
                res.append(row)
            else:
                row.reverse()
                res.append(row)
            tree = sub_tree
            left_right = not left_right
        return res


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章