Skip to content

Instantly share code, notes, and snippets.

@braddotcoffee
Created November 17, 2023 02:45
Show Gist options
  • Save braddotcoffee/971c2f62f1e8bf2a255ac9ed20999cdb to your computer and use it in GitHub Desktop.
Save braddotcoffee/971c2f62f1e8bf2a255ac9ed20999cdb to your computer and use it in GitHub Desktop.
102. Binary Tree Level Order Traversal
# 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 traverse_tree(self, node: Optional[TreeNode], depth: int, levels: list[list[int]]):
if node is None:
return
if len(levels) == depth:
levels.append(list())
levels[depth].append(node.val)
self.traverse_tree(node.left, depth + 1, levels)
self.traverse_tree(node.right, depth + 1, levels)
def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
levels = list()
self.traverse_tree(root, 0, levels)
return levels
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment