package main
import . "nc_tools"
/*
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
/**
*
* @param root TreeNode类
* @return int整型二维数组
*/
func levelOrder( root *TreeNode ) [][]int {
// write code here
res := make([][]int, 0)
if root == nil {
return nil
}
level := make([]*TreeNode, 0)
level = append(level, root)
for len(level) != 0 {
size := len(level)
tmpNode := make([]*TreeNode, 0)
tmp := make([]int, 0)
for index := 0; index < size; index++ {
currentNode := level[0]
level = level[1:]
tmp = append(tmp, currentNode.Val)
if currentNode.Left != nil {
tmpNode = append(tmpNode, currentNode.Left)
}
if currentNode.Right != nil {
tmpNode = append(tmpNode, currentNode.Right)
}
}
level = append(level, tmpNode...)
res = append(res, tmp)
}
return res
}