LC: 261. Graph Valid Tree
https://leetcode.com/problems/graph-valid-tree/
261. Graph Valid Tree
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:
Input: n = 5, edges = [[0,1],[0,2],[0,3],[1,4]]
Output: trueExample 2:
Input: n = 5, edges = [[0,1],[1,2],[2,3],[1,3],[1,4]]
Output: falseConstraints:
1 <= 2000 <= n0 <= edges.length <= 5000edges[i].length == 20 <= ai, bi < nai != biThere are no self-loops or repeated edges.
The Essence:
Ein solcher Graph muss azyklisch und zusammenhängend sein. Ein Baum besitzt konsequenterweise n-1 Kanten für n Knoten. Des Weiteren gibt es zwei Strategien:
1- Man kann den Graphen einfach von einem Knoten aus traversieren. Es muss keine Zyklen geben und die Anzahl der Knoten muss n gleich sein.
2- Man kann Union-Find-Struktur verwenden. Wenn eine Kanten zwei Knoten gleicher Wurzel verbindet, dann kann dieser Graph kein Baum sein.
Details:
Die Implementierung dieser Ansätze sowie weitere Erläuterungen finden Sie in unserer entsprechenden PR.
Solution(s):
Default Code:
Last updated