//2,bfs常规解
func levelOrderBottom(root *TreeNode) [][]int {
if root == nil {
return nil
}
levels := [][]int{}
queue := []*TreeNode{root}
for len(queue) > 0 {
n := len(queue)
level_tmp := []int{}
for i := 0; i < n; i++ {
root = queue[0]
queue = queue[1 :]
level_tmp = append(level_tmp, root.Val)
if root.Left != nil {
queue = append(queue, root.Left)
}
if root.Right != nil {
queue = append(queue, root.Right)
}
}
levels = append(levels, level_tmp)
}
return levels
}