package main type TreeNode struct { Val int Left *TreeNode Right *TreeNode } func main() { } func levelOrder(root *TreeNode) [][]int { if root == nil { return [][]int{} } queue := []*TreeNode{root} var result [][]int for len(queue) > 0 { length := len(queue) cur := make([]int, length) for i := 0; i < length; i++ { node := queue[0] queue = queue[1:] cur[i] = node.Val if node.Left != nil { queue = append(queue, node.Left) } if node.Right != nil { queue = append(queue, node.Right) } } result = append(result, cur) } return result }