LeetCode-Golang之【102. 二叉树的层序遍历】

2020-12-07  本文已影响0人  StevenChu1125

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

题解

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func levelOrder(root *TreeNode) [][]int {
    var levels [][]int
    if root == nil {
        return levels
    }
    var queue []*TreeNode
    queue = append(queue,root)
    
    for len(queue) > 0 {
        var level []int
        n :=len(queue)
        for i:=0;i<n;i++{
            node :=queue[0]
            queue = queue[1:]
            level = append(level,node.Val)
            if node.Left != nil {
                queue = append(queue,node.Left)
            }
            if node.Right != nil {
                queue = append(queue,node.Right)
            }
        }
        levels = append(levels,level)
    }
    return levels   
}
上一篇下一篇

猜你喜欢

热点阅读