Update bt_bfs.py

This commit is contained in:
bt3gl 2023-08-08 13:23:11 -07:00 committed by GitHub
parent 3e375366ae
commit cf170e3d57
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,29 +3,39 @@
# author: bt3gl # author: bt3gl
def level_order(root: Optional[Node]) -> list[list[int]]: def bfs_iterative(root) -> list:
result = []
queue = collections.deque([root])
if root is None: if root is None:
return [] return result
queue = collections.deque()
queue.append(root)
result = []
while queue: while queue:
this_level = [] node = queue.popleft()
for _ in range(len(queue)): if node:
result.append(node.val)
current = queue.popleft() queue.append(node.left)
queue.append(node.right)
if current:
this_level.append(current.val)
queue.append(current.left)
queue.append(current.right)
if this_level:
result.append(this_level)
return result return result
def bfs_recursive(root) -> list:
result = []
if root is None:
return root
def helper(node):
if node:
result.append(node.val)
helper(node.left)
helper(node.right)
helper(root)
return result