File tree Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Original file line number Diff line number Diff line change
1
+ # O(n+e) where n is number of nodes and e is the number of edges.
2
+ # O(n+e) where n is number of nodes and e is the number of edges.
3
+ class Solution :
4
+ def validTree (self , numNodes : int , connections : List [List [int ]]) -> bool :
5
+ adjacencyList = [[] for _ in range (numNodes )]
6
+ for src , dst in connections :
7
+ adjacencyList [src ].append (dst )
8
+ adjacencyList [dst ].append (src )
9
+
10
+ visitedNodes = set ()
11
+
12
+ def detectCycle (currentNode , previousNode ):
13
+ if currentNode in visitedNodes :
14
+ return True
15
+ visitedNodes .add (currentNode )
16
+ for neighbor in adjacencyList [currentNode ]:
17
+ if neighbor == previousNode :
18
+ continue
19
+ if detectCycle (neighbor , currentNode ):
20
+ return True
21
+ return False
22
+
23
+ if detectCycle (0 , - 1 ):
24
+ return False
25
+ return len (visitedNodes ) == numNodes
You can’t perform that action at this time.
0 commit comments