Update 0102.二叉树的层序遍历.md

This commit is contained in:
jianghongcheng
2023-05-03 20:04:54 -05:00
committed by GitHub
parent 95616fa9a8
commit 7be18e2dd3

View File

@ -1426,28 +1426,36 @@ public:
python代码 python代码
```python ```python
"""
# Definition for a Node.
class Node:
def __init__(self, val=None, children=None):
self.val = val
self.children = children
"""
class Solution: class Solution:
"""N叉树的层序遍历迭代法"""
def levelOrder(self, root: 'Node') -> List[List[int]]: def levelOrder(self, root: 'Node') -> List[List[int]]:
results = []
if not root: if not root:
return results return []
from collections import deque result = []
que = deque([root]) queue = collections.deque([root])
while que: while queue:
result = [] level_size = len(queue)
for _ in range(len(que)): level = []
cur = que.popleft()
result.append(cur.val)
# cur.children 是 Node 对象组成的列表,也可能为 None
if cur.children:
que.extend(cur.children)
results.append(result)
return results for _ in range(level_size):
node = queue.popleft()
level.append(node.val)
for child in node.children:
queue.append(child)
result.append(level)
return result
``` ```
```python ```python