【算法训练】剑指offer#32 - I 从上到下打印二叉树

一、描述

剑指 Offer 32 - I. 从上到下打印二叉树

从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。

例如:
给定二叉树: [3,9,20,null,null,15,7],

示例 :

    3
   / \
  9  20
    /  \
   15   7

返回:

[3,9,20,15,7]

二、思路

  • 用队列的思想
if not root:
    return []
res, queue = [], Collection.deque()
queue.append(root)
while queue:
    node = queue.popleft()
    res.append(node.val)
    if node.left:
        queue.append(node.left)
    if node.right:
        queue.append(node.right)

不大行,不允许用deque,那就用list实现吧

三、解题

class Solution:
    def levelOrder(self, root: TreeNode) -> List[int]:
        if not root:
            return []
        res, queue = [], []
        queue.append(root)
        while queue:
            node = queue.pop(0)
            res.append(node.val)
            if node.left:
                queue.append(node.left)
            if node.right:
                queue.append(node.right)
        return res
posted @ 2022-01-18 19:26  小拳头呀  阅读(29)  评论(0编辑  收藏  举报