美文网首页
二叉树 Leetcode 429 N叉树的层序遍历

二叉树 Leetcode 429 N叉树的层序遍历

作者: 禾木清清 | 来源:发表于2019-07-14 19:25 被阅读0次

    题目

    给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。

    例如,给定一个 3叉树 :

    返回其层序遍历:

    [
    [1],
    [3,2,4],
    [5,6]
    ]

    说明:

    树的深度不会超过 1000。
    树的节点总数不会超过 5000。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    解题思路

    • 判读为空,返回[]
    • 使用stack保存每一层的节点,使用res保存结果
    • 循环遍历每一层,取出每个节点,并且保存每层的children。更逊stack和res。
    • 返回res

    代码

    """
    # Definition for a Node.
    class Node(object):
        def __init__(self, val, children):
            self.val = val
            self.children = children
    """
    class Solution(object):
        def levelOrder(self, root):
            """
            :type root: Node
            :rtype: List[List[int]]
            """
            if not root:
                return []
            
            stack = [root]
            res = []
           
            while stack:
                nodes = []
                next_layer = []
                for n in stack:
                    nodes.append(n.val)
                    next_layer.extend(n.children)
                stack = next_layer
                res.append(nodes)
            return res
                
    

    相关文章

      网友评论

          本文标题:二叉树 Leetcode 429 N叉树的层序遍历

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