给你二叉树的根节点
root,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
输入: root = [3,9,20,null,null,15,7]
输出: [[3],[9,20],[15,7]]
第一种解法
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func levelOrder(root *TreeNode) [][]int {
var res [][]int
if root == nil {
return res
}
q := []*TreeNode{root}
for len(q) > 0 {
var (
n = len(q)
vals []int
)
for i := 0; i < n; i++ {
node := q[0]
q = q[1:]
vals = append(vals, node.Val)
if node.Left != nil {
q = append(q, node.Left)
}
if node.Right != nil {
q = append(q, node.Right)
}
}
res = append(res, vals)
}
return res
}