LeetCode 429. N 叉樹的層序遍歷
阿新 • • 發佈:2020-12-06
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