'''
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, x):
# self.val = x
# self.left = None
# self.right = None
#iterative
class Solution:
def levelOrder(self, root: 'TreeNode') -> 'List[List[int]]':
if not root:
return []
result = [[root.val]]
current = [root]
while True:
node = []
for i in current:
if i.left: node.append(i.left)
if i.right: node.append(i.right)
if node == []:
break
vals = [j.val for j in node]
result.append(vals)
current = node
return result
No comments:
Post a Comment