《python算法与数据结构2000讲》0785. 判断二分图
- 标签:深度优先搜索、广度优先搜索、并查集、图
- 难度:中等
题目大意
给定一个代表 n 个节点的无向图的二维数组 graph
,其中 graph[u]
是一个节点数组,由节点 u
的邻接节点组成。对于 graph[u]
中的每个 v
,都存在一条位于节点 u
和节点 v
之间的无向边。
该无向图具有以下属性:
- 不存在自环(
graph[u]
不包含u
)。 - 不存在平行边(
graph[u]
不包含重复值)。 - 如果
v
在graph[u]
内,那么u
也应该在graph[v]
内(该图是无向图)。 - 这个图可能不是连通图,也就是说两个节点
u
和v
之间可能不存在一条连通彼此的路径。
要求:判断该图是否是二分图,如果是二分图,则返回 True
;否则返回 False
。
- 二分图:如果能将一个图的节点集合分割成两个独立的子集
A
和B
,并使图中的每一条边的两个节点一个来自A