102. Binary Tree Level Order Traversal
Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).
For example:
Given binary tree [3,9,20,null,null,15,7],
3
/
9 20
/
15 7
return its level order traversal as:
[
[3],
[9,20],
[15,7]
]
尝试使用标准库 container
func levelOrder(root *TreeNode) [][]int {
if root==nil {
return [][]int{}
}
var res [][]int
lt := list.New()
lt.PushBack(root)
for lt.Len() > 0 {
lel := []int{}
nxt := list.New()
for node := lt.Front(); node != nil; node = node.Next() {
if v, ok := node.Value.(*TreeNode); ok && v!=nil {
lel = append(lel, v.Val)
if v.Left != nil {
nxt.PushBack(v.Left)
}
if v.Right != nil {
nxt.PushBack(v.Right)
}
}
}
lt = nxt
res = append(res, lel)
}
return res
}