func levelOrderBottom(root *TreeNode) [][]int {
if root == nil {
return [][]int{}
}
var res = make([][]int, 1)
var queue = make([]*TreeNode, 1)
queue[0] = root
var first = []int{root.Val}
res[0] = first
for {
var size = len(queue)
var curNum []int
for i := 0; i < size; i++ {
if queue[i].Left != nil {
queue = append(queue, queue[i].Left)
curNum = append(curNum, queue[i].Left.Val)
}
if queue[i].Right != nil {
queue = append(queue, queue[i].Right)
curNum = append(curNum, queue[i].Right.Val)
}
}
if len(curNum) < 1 {
return res
}
queue = append(queue[:0], queue[size:]...)
var temp = [][]int{
curNum,
}
res = append(temp, res...)
}
}