描述
不分行从上往下打印出二叉树的每个节点,同层节点从左至右打印。例如输入{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
}
还不快抢沙发