261. Graph Valid Tree
Description
Difficulty: Medium
Related Topics: Depth-First Search, Breadth-First Search, Union Find, Graph
You have a graph of n nodes labeled from 0 to n - 1. You are given an integer n and a list of edges where edges[i] = [ai, bi] indicates that there is an undirected edge between nodes ai and bi in the graph.
Return true if the edges of the given graph make up a valid tree, and false otherwise.
Example 1:

1 | Input: n = 5, edges = [[0,1],[0,2],[0,3],[1,4]] |
Example 2:

1 | Input: n = 5, edges = [[0,1],[1,2],[2,3],[1,3],[1,4]] |
Constraints:
1 <= n <= 20000 <= edges.length <= 5000edges[i].length == 2- 0 <= ai, bi < n
- ai != bi
- There are no self-loops or repeated edges.
Hints/Notes
- 2023/09/03
- Union find
- A valid tree doesn’t have a cycle, and there’s only one component
- premium
Solution
Language: C++
1 | class Solution { |