Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
# 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]]:
if root is None:
return
queue = [root]
result = []
while queue:
length = len(queue)
temp = []
for i in range(0, length):
root = queue.pop(0)
temp.append(root.val)
if root.left:
queue.append(root.left)
if root.right:
queue.append(root.right)
result.append(temp)
return result
BFS 中 level-order 순회 방식을 사용함
레벨을 의미하는 'queue 의 길이' 만큼 반복문 한번 더 돌리면서 값을 리스트로 묶어준 후 result 에 넣음