1. //2,bfs常规解
    2. func levelOrderBottom(root *TreeNode) [][]int {
    3. if root == nil {
    4. return nil
    5. }
    6. levels := [][]int{}
    7. queue := []*TreeNode{root}
    8. for len(queue) > 0 {
    9. n := len(queue)
    10. level_tmp := []int{}
    11. for i := 0; i < n; i++ {
    12. root = queue[0]
    13. queue = queue[1 :]
    14. level_tmp = append(level_tmp, root.Val)
    15. if root.Left != nil {
    16. queue = append(queue, root.Left)
    17. }
    18. if root.Right != nil {
    19. queue = append(queue, root.Right)
    20. }
    21. }
    22. levels = append(levels, level_tmp)
    23. }
    24. return levels
    25. }