码迷,mamicode.com
首页 > 编程语言 > 详细

《剑指offer》面试题16:从上往下打印二叉树(Python)

时间:2020-09-04 17:24:39      阅读:59      评论:0      收藏:0      [点我收藏+]

标签:sub   init   思路   就是   tle   content   pre   root   ret   

题目描述

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

解题思路:

这个题目其实非常基础了,也就是直接使用BFS广度优先搜索算法对整棵二叉树进行遍历即可,我们最后返回的是一个数组 "[]",把遍历之后的元素放到这个数组当中即可。为了进行BFS,我们首先新建一个队列,将树根部的节点放到队列里,然后弹出,弹出的同时将刚刚弹出的Node下面的两个节点放到队列的后面,这样在循环当中又可以遍历后面的Node了。同时这个题比较特殊,我们返回的是一个列表,因此即使给定的root里面啥也没有,我们返回的则是空列表而不是None。代码如下所示:

# -*- 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 []
        ret = []
        queue = []
        queue.append(root)
        while queue:
            now_node = queue.pop(0)
            ret.append(now_node.val)
            if now_node.left != None:
                queue.append(now_node.left)
            if now_node.right != None:
                queue.append(now_node.right)
        return (ret)

 

《剑指offer》面试题16:从上往下打印二叉树(Python)

标签:sub   init   思路   就是   tle   content   pre   root   ret   

原文地址:https://www.cnblogs.com/geeksongs/p/13569457.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!