[Leetcode]4.II. 从上到下打印二叉树 II
题目:从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
例如:
给定二叉树: [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回其层次遍历结果:
[
[3], [9,20], [15,7] ]
思想:使用一个队列存储,每次遍历队列中的所有元素(即一层),使用temp临时保存子队列,一层全部遍历完后,数组切换至下一行.
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func levelOrder(root *TreeNode) [][]int {
var queue []*TreeNode
var res [][]int
if root == nil {
return res
}
queue = append(queue,root)
var i int = 0
for len(queue)!=0{
temp := []*TreeNode{}
res = append(res,[]int{})
for _,v:=range queue{
res[i]=append(res[i],v.Val)
if v.Left != nil{
temp = append(temp,v.Left)
}
if v.Right !=nil{
temp = append(temp,v.Right)
}
}
queue = queue[0:0]
i++
queue = temp
}
return res
}
题目来源:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof/

浙公网安备 33010602011771号