美文网首页
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