Talk is cheap.
func printFromTopToBottom(root *TreeNode) [][]int {
res := [][]int{}
if root != nil {
level := []*TreeNode{root}
for len(level) != 0 {
restmp := []int{}
for _, v := range level {
restmp = append(restmp, v.Val)
}
res = append(res, restmp)
tmp := []*TreeNode{}
for _, v := range level {
if v.Left != nil {
tmp = append(tmp, v.Left)
}
if v.Right != nil {
tmp = append(tmp, v.Right)
}
}
level = tmp
}
}
return res
}