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 }