首页 > 其他 > 详细

【剑指offer】 面试题32 - I. 从上到下打印二叉树

时间:2020-05-17 16:19:16      阅读:37      评论:0      收藏:0      [点我收藏+]

问题描述

面试题32 - I. 从上到下打印二叉树

从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
例如:
给定二叉树: [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7

返回:

[3,9,20,15,7]

分析

层次遍历,先存根节点,若空则直接返回none

然后开始访问根节点的左子树,右子树,接着是左子树的左子树、右子树,右子树的左子树、右子树。是一个前进先出,队列

所以:每一次打印一个结点的时候,如果该结点有子结点,则把该结点的子结点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的结点,重复前面的打印操作,直至队列中所有的结点都打印出来为止。

 

解题

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def levelOrder(self, root: TreeNode) -> List[int]:
        if(not root):
            return []
        res=[]
        # res.append(root)
        temp=[root]
        while(len(temp)):
            cur=temp.pop(0)#弹出第0个,默认是最后一个
            res.append(cur.val)
            if(cur.left):
                temp.append(cur.left)
            if(cur.right):
                temp.append(cur.right)
        return res

 

【剑指offer】 面试题32 - I. 从上到下打印二叉树

原文:https://www.cnblogs.com/fuj905/p/12905594.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!