算法-广度优先搜索(BFS)
1. BFS和DFS图解
2. 算法定义:
通常BFS会和Queue(先进先出)一同使用。步骤如下:
- 将根节点加入到Queue中;
- 使用while循环,当Queue为空时,结束循环。
- 从Queue中poll出队尾节点,访问此节点。如果该节点有子节点,将子节点依次加入Queue中
- 重复2、3直到循环结束
3.代码示例
import queue class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param root TreeNode类 # @return int整型二维数组 # class Solution: def levelOrder(self, root: TreeNode) -> List[List[int]]: q = queue.Queue() q.put(root) while q: temp_node = q.get() print(temp_node.val) if temp_node.left: q.put(temp_node.left) if temp_node.right: q.put(temp_node.right)