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
def level_order(root: Optional[Node]) -> list[list[int]]:
def bfs_iterative(root) -> list:
result = []
queue = collections.deque([root])
if root is None:
return []
queue = collections.deque()
queue.append(root)
result = []
return result
while queue:
this_level = []
for _ in range(len(queue)):
node = queue.popleft()
current = queue.popleft()
if current:
this_level.append(current.val)
queue.append(current.left)
queue.append(current.right)
if this_level:
result.append(this_level)
if node:
result.append(node.val)
queue.append(node.left)
queue.append(node.right)
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