从上往下打印二叉树

题目描述

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

思路

使用宽度优先搜索层次遍历整个二叉树。
利用队列的FIFO的特性,把节点依次放进队列里。

代码

class Solution:
    # 返回从上到下每个节点值列表,例:[1,2,3]
    def PrintFromTopToBottom(self, root):
        # write code here
        if root is None:
            return [] #边界情况
        q = [root] #每次向队列中压住当前层次的节点
        result = [] #存放最终的结果
        while q:
            current_level = [] #记录当前层的节点的孩子
            for node in q:
                result.append(node.val)
                if node.left is not None:
                    current_level.append(node.left)
                if node.right is not None:
                    current_level.append(node.right)
            q = current_level
        return result
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目描述: 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 分析: 二叉树的遍历:前序遍历:根->左->右...
    夏臻Rock阅读 288评论 0 0
  • 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 代码实现 主要思路 1、从上到下按层打印二叉树,...
    _minimal阅读 1,182评论 0 1
  • 题目描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印。 难点坑点 就是个层遍历二叉树,本题可以用一个队列...
    yyming阅读 361评论 0 0
  • 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 解题思路 就是二叉树的层序遍历。借助一个队列就可...
    繁著阅读 231评论 0 0
  • 学校的实习期分两批,先一批在大三结束的暑假,后一批在大四九周课结束后,我曾打算领先于别人,无奈在校期间主要贡献都在...
    Benny_浩阅读 252评论 0 0