Timer is Running

Given a Undirected Graph. Check whether it contains a cycle or not.

**Input:**

The first line of the input contains an integer **'T'** denoting the number of test cases. Then **'T'** testcases follow. Each testcase consists of two lines. Description of testcases are as follows: The First line of each testcase contains two integers **'N' and 'M' **which denotes the no of vertices and no of edges respectively. The Second line of each test case contains **'M' ** space separated pairs **u** and **v** denoting that there is a bidirectional edge from **u** to **v** .

**Output:**

The method should return **1** if there is a cycle else it should return **0**.

**User task:**

You don't need to read input or print anything. Your task is to complete the function **isCyclic **which takes the Graph and the number of vertices as inputs and returns true if the given undirected graph contains any cycle. Else, it returns false.

**Expected Time Complexity: **O(V + E).

**Expected Auxiliary Space: **O(V).

**Constraints:**

1 <= T <= 100

2 <= N <= 10^{4}

1 <= M <= (N*(N-1))/2

0 <= u, v <= N-1

Graph doesn't contain multiple edges and self loops.

**Example:
Input:**

3

2 1

0 1

4 3

0 1 1 2 2 3

5 4

0 1 2 3 3 4 4 2

**Output:**

0

0

1

**Explanation:
Testcase 1:** There is a graph with 2 vertices and 1 edge from 0 to 1. So there is no cycle.

Author: Shubham Joshi 1

If you have purchased any course from GeeksforGeeks then please ask your doubt on course discussion forum. You will get quick replies from GFG Moderators there.

tekuripurushotham | 64 |

omkarjadhav1191 | 63 |

visutkarsh2000 | 62 |

ayushaggarwal821 | 51 |

dixitabhyuday | 38 |

abnandi04 | 776 |

ponnadasaikesav | 450 |

KshamaGupta | 446 |

yogesh_aka_dante | 405 |

mummy | 313 |

blackshadows | 5362 |

Ibrahim Nash | 5244 |

akhayrutdinov | 5111 |

mb1973 | 4976 |

Quandray | 4752 |

Login to report an issue on this page.