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