美文网首页
LeetCode-Golang之【102. 二叉树的层序遍历】

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

作者: StevenChu1125 | 来源:发表于2020-12-07 06:57 被阅读0次

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

题解

/**
 * 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   
}

相关文章

网友评论

      本文标题:LeetCode-Golang之【102. 二叉树的层序遍历】

      本文链接:https://www.haomeiwen.com/subject/mjeawktx.html