mirror of
https://github.com/autistic-symposium/master-algorithms-py.git
synced 2025-04-29 20:26:07 -04:00
Update bt_bfs.py
This commit is contained in:
parent
3e375366ae
commit
cf170e3d57
@ -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)):
|
|
||||||
|
|
||||||
current = queue.popleft()
|
if node:
|
||||||
|
result.append(node.val)
|
||||||
if current:
|
queue.append(node.left)
|
||||||
this_level.append(current.val)
|
queue.append(node.right)
|
||||||
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
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user