Is Graph Bipartite(BFS和DFS)
Given an undirected graph, returntrueif and only if it is bipartite.
Recall that a graph is_bipartite_if we can split it's set of nodes into two independent subsets A and B such that every edge in the graph has one node in A and another node in B.
The graph is given in the following form:graph[i]is a list of indexesjfor which the edge between nodesiandjexists. Each node is an integer between0andgraph.length - 1. There are no self edges or parallel edges:graph[i]does not containi, and it doesn't contain any element twice.
Example 1:
Input:
[[1,3], [0,2], [1,3], [0,2]]
Output:
true
Explanation:
The graph looks like this:
0----1
| |
| |
3----2
We can divide the vertices into two groups: {0, 2} and {1, 3}.Example 2:
Input:
[[1,2,3], [0,2], [0,1,3], [0,2]]
Output:
false
Explanation:
The graph looks like this:
0----1
| \ |
| \ |
3----2
We cannot find a way to divide the set of nodes into two independent subsets.Note:
分析
因为有不可达的离散点,所以DFS BFS都要FOR LOOP来检验那些不可达的点。
BFS
DFS
Last updated
Was this helpful?