zoukankan      html  css  js  c++  java
  • LeetCode 429. N 叉树的层序遍历

    429. N 叉树的层序遍历

    Difficulty: 中等

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

    树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。

    示例 1:

    输入:root = [1,null,3,2,4,null,5,6]
    输出:[[1],[3,2,4],[5,6]]
    

    示例 2:

    输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
    输出:[[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]
    

    提示:

    • 树的高度不会超过 1000
    • 树的节点总数在 [0, 10^4] 之间

    Solution

    Language: ****
    解法跟二叉树的层序遍历一样:BFS+queue,只是需要注意node.children返回的是一个list

    """
    # Definition for a Node.
    class Node:
        def __init__(self, val=None, children=None):
            self.val = val
            self.children = children
    """
    ​
    class Solution:
        def levelOrder(self, root: 'Node') -> List[List[int]]:
            if not root:
                return []
            queue, res = [root], []
            
            while queue:
                curLevel, size = [], len(queue)
                for i in range(size):
                    node = queue.pop(0)
                    curLevel.append(node.val)
                    for child in node.children:
                        queue.append(child)
                res.append(curLevel)
                
            return res
    
  • 相关阅读:
    leetcode 78. 子集 JAVA
    leetcode 91. 解码方法 JAVA
    leetcode 75. 颜色分类 JAVA
    leetcode 74 搜索二维矩阵 java
    leetcode 84. 柱状图中最大的矩形 JAVA
    last occurance
    first occurance
    classical binary search
    LC.234.Palindrome Linked List
    LC.142. Linked List Cycle II
  • 原文地址:https://www.cnblogs.com/swordspoet/p/14092546.html
Copyright © 2011-2022 走看看