1.2 Breadth First Search
什么时候应该使用BFS?
3.1 二叉树上的宽搜 BFS in Binary Tree
#V1: deque: double queue
from collections import deque
class Solution:
"""
@param root: A Tree
@return: Level order a list of lists of integer
"""
def levelOrder(self, root):
if root is None:
return []
queue = deque([root])
result = []
while queue:
level = []
size = len(queue)
for _ in range(size): #queue长度变化不会有影响,因为range()是生成一个固定的值
node = queue.popleft()
level.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
result.append(level)
return result3.2 Binary Tree Serialization (M+Y)
什么是序列化?
常用的一些序列化手段:
二叉树序列化
3.3 图上的宽搜 BFS in Graph
Graph Valid Tree
Clone Graph
3.4 拓扑排序
Topological Sorting
Course Schedule裸拓扑排序
Sequence Reconstruction
3.5 BFS in Matrix
矩阵 vs 图
Number of Islands
Zombie in Matrix
Smallest Rectangle Enclosing Black Pixels
Word Ladder
Word Ladder II
总结 Conclusion
Last updated