剑指Offer-Python-牛客网

面试题32.1:从上到下打印二叉树

2019-01-09  本文已影响0人  凌霄文强

题目描述

从上往下打印出二叉树的每个节点,同层节点从左至右打印。

知识点

二叉树,队列


Qiang的思路

这道题说白了就是一个层次遍历,或者说是图的广度优先遍历的问题,那么就需要一个队列将待遍历的元素存储下来,然后对其按照先进先出的原则进行遍历,同时将其孩子节点按照先左后右的顺序进行入队,按照这个顺序便能够实现一个二叉树的层次遍历了。

# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    # 返回从上到下每个节点值列表,例:[1,2,3]
    def PrintFromTopToBottom(self, root):
        # write code here
        if root == None:
            return []
        res=[]
        l=[root]
        while len(l)!=0:
            n=l.pop(0)
            res.append(n.val)
            if n.left!=None:
                l.append(n.left)
            if n.right!=None:
                l.append(n.right)
        return res

作者原创,如需转载及其他问题请邮箱联系:lwqiang_chn@163.com
个人网站:https://www.myqiang.top

上一篇下一篇

猜你喜欢

热点阅读