欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

leetcode 面试题32 - III. 从上到下打印二叉树 III(python3)

程序员文章站 2022-07-15 19:41:12
...

面试题32 - III. 从上到下打印二叉树 III
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。
leetcode 面试题32 - III. 从上到下打印二叉树 III(python3)

class Solution:
    def levelOrder(self, root: TreeNode) -> List[List[int]]:
        if not root:
            return []
        res = []  #输出打印的结果
        queue = [root]
        flag = 1 # 1不需要反转,-1需要反转
        while queue:
            tem = []
            for i in range(len(queue)): #表示循环多少次
                node = queue.pop(0)
                tem.append(node.val)
                if node.left:
                    queue.append(node.left)
                if node.right:
                    queue.append(node.right)
            res.append(tem[::flag])
            flag *= -1
        return res