描述

不分行从上往下打印出二叉树的每个节点,同层节点从左至右打印。例如输入{8,6,10,#,#,2,1},如以下图中的示例二叉树,则依次打印8,6,10,2,1(空节点不打印,跳过),请你将打印的结果存放到一个数组里面,返回。

    8
   /  \
  6   10
      / \
     2   1

数据范围:

0<=节点总数<=1000

-1000<=节点值<=1000

示例
// 输入:
{8,6,10,#,#,2,1}
// 返回值:
[8,6,10,2,1]

// 输入:
{5,4,#,3,#,2,#,1}
// 返回值:
[5,4,3,2,1]
解题思路

层次遍历

代码实现
/**
 * [JZ32-简单]从上往下打印二叉树
 * 
 * @param root TreeNode类 
 * @return int 整型一维数组
*/
func printFromTopToBottom(root *TreeNode) []int {
    res := []int{}
    if nil == root {
        return res
    }
    
    tmp := []*TreeNode{root}
    for i := 0; i < len(tmp); i++ {
        current := tmp[i]
        res = append(res, current.Val)
        if nil != current.Left {
            tmp = append(tmp, current.Left)
        }
        if nil != current.Right {
            tmp = append(tmp, current.Right)
        }
    }
    return res
}

本文由 一切随风 创作,可自由转载、引用,但需署名作者且注明文章出处。

8 条评论

  1. hijotnljtb
    hijotnljtb

    圣诞大赢家

  2. sqlyfsgmtn
    sqlyfsgmtn

    聊斋志异之瞳人语

  3. dryitctlgq
    dryitctlgq

    手拉手

  4. xpaiqqqwxy
    xpaiqqqwxy

    淑女风范

  5. ubuvqstvui
    ubuvqstvui

    一念之痒

  6. auolciioie
    auolciioie

    新编宝莲灯

  7. iblpuycgom
    iblpuycgom

    五郎八卦棍

  8. fyodjhsalk
    fyodjhsalk

    玫瑰玫瑰色

添加新评论