二叉树的层序遍历
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
/**
* 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
}