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.
- dfs solution
- Time : O(v + e)
- Space : O(v + e);
c++
1 | class Solution { |
- union find solution
- Time : O(elogv + v)
- Space : O(v)
c++
1 | class Solution { |