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

一、描述

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

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

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

示例 :

    3
   / \
  9  20
    /  \
   15   7

返回:

[
  [3],
  [9,20],
  [15,7]
]

二、思路

  • 剑指 Offer 32 - I. 从上到下打印二叉树一样,用队列的思想,只是存储的时候略有不同罢了
  • 。。想简单了,需要判断出哪几个节点在同一行
  • 高级哦,看了题解,用len(queue)判断,太巧妙了

三、解题


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