每日一題:“之”字打印二叉樹 by python(19.10.5)

題目描述:

請實現一個函數按照之字形打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右至左的順序打印,第三行按照從左到右的順序打印,其他行以此類推。

# -*- 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 []
        pl = [[pRoot]]
        while pl[-1] != []:
            t = []
            for n in pl[-1]:
                if n.left:
                    t.append(n.left)
                if n.right:
                    t.append(n.right)
            pl.append(t)
        res = []
        flag = 0
        for l in pl[:-1]:
            t = []
            for n in l:
                t.append(n.val)
            if flag % 2 != 0:
                t.reverse()
            flag += 1
            res.append(t)
        return res

 

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