# 102. Binary Tree Level Order Traversal #### Difficulty: Medium link: https://leetcode.com/problems/binary-tree-level-order-traversal/ ### 1. Iterative method #### $O(n)$ runtime, $O(n)$ space ##### python ```python= # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]: result = [] level = [root] if root is not None else [] while level: result.append([node.val for node in level]) next_level = [] for node in level: for child in [node.left, node.right]: if child is not None: next_level.append(child) level = next_level return result ``` 精簡版 ##### python ```python= # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def levelOrder(self, root: TreeNode) -> List[List[int]]: result = [] level = [root] if root is not None else [] while level: result.append([n.val for n in level]) level = [c for n in level for c in (n.left, n.right) if c is not None] return result ``` ###### tags: `leetcode`