There is a bi-directional graph with n vertices, where each vertex is labeled from 0 to n - 1 (inclusive). The edges in the graph are represented as a 2D integer array edges, where each edges[i] = [ui, vi] denotes a bi-directional edge between vertex ui and vertex vi. Every vertex pair is connected by at most one edge, and no vertex has an edge to itself.
You want to determine if there is a valid path that exists from vertex source to vertex destination.
Given edges and the integers n, source, and destination, return trueif there is a valid path fromsourcetodestination, orfalseotherwise_._
Input: n = 3, edges =[[0,1],[1,2],[2,0]], source = 0, destination = 2
Output: true
Explanation: There is one path from vertex 0 to vertex 2:
- 0 → 1 → 2
Example 2:
graph LR;
2 <-- 0 --> 1
3 --> 5 --> 4 --> 3
1
2
3
Input: n = 6, edges =[[0,1],[0,2],[3,5],[5,4],[4,3]], source = 0, destination = 5
Output: false
Explanation: There is no path from vertex 0 to vertex 5.
BFS can be used to check if one node is reachable from other :
1
2
3
4
5
6
7
8
9
Add V1 to a queue of nodes to be visited
While there are nodes in the queue:
If the node is V2, returntrue Mark the node as visited
For every node at the end of an outgoing edge which is not yet visited:
Add this node to the queue
End forEnd whileReturn false