1. 程式人生 > 其它 >演算法-廣度優先搜尋(BFS)

演算法-廣度優先搜尋(BFS)

1. BFS和DFS圖解

2. 演算法定義:

通常BFS會和Queue(先進先出)一同使用。步驟如下:

  1. 將根節點加入到Queue中;
  2. 使用while迴圈,當Queue為空時,結束迴圈。
  3. 從Queue中poll出隊尾節點,訪問此節點。如果該節點有子節點,將子節點依次加入Queue中
  4. 重複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)