[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/

 
posted @ 2021-10-17 19:55  梦想是能睡八小时的猪  阅读(28)  评论(0)    收藏  举报