https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/
即二叉树的BFS
使用队列
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func levelOrder(root *TreeNode) []int {
res := make([]int, 0)
// 特判
if root == nil {
return res
}
queue := make([]*TreeNode, 0)
qStartIdx := 0
queue = append(queue, root)
for len(queue) - 1 - qStartIdx >= 0 { // 循环(当queue非空){queue出一个q,进q的左右节点}}
res = append(res, queue[qStartIdx].Val)
if queue[qStartIdx].Left != nil {
queue = append(queue, queue[qStartIdx].Left)
}
if queue[qStartIdx].Right != nil {
queue = append(queue, queue[qStartIdx].Right)
}
qStartIdx++
}
return res
}