Friday, February 22, 2019

LeetCode 102. Binary Tree Level Order Traversal

'''

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