二叉树的层序遍历
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
在这里插入图片描述

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func levelOrder(root *TreeNode) [][]int {
    result :=[][]int{}
    if root == nil {
        return result
    }
    q :=[]*TreeNode{root}
    for i:=0;len(q)>0;i++{
        result = append(result,[]int{})
        p :=[]*TreeNode{}
        for j:=0;j<len(q);j++{
            result[i]=append(result[i],q[j].Val)
            if q[j].Left !=nil {
                p = append(p,q[j].Left)
            }
            if q[j].Right !=nil {
                p = append(p,q[j].Right)
            }
        }
        q=p
    }
    return result
}