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?