File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change 1+ import Foundation
2+
3+ class Solution {
4+ // O(n) time / O(n) space
5+ func validTree( _ n: Int , _ edges: [ [ Int ] ] ) -> Bool {
6+ guard edges. count == n - 1 else {
7+ return false
8+ }
9+
10+ var connectedNodes = Array ( repeating: [ Int] ( ) , count: n)
11+
12+ for edge in edges {
13+ connectedNodes [ edge [ 0 ] ] . append ( edge [ 1 ] )
14+ connectedNodes [ edge [ 1 ] ] . append ( edge [ 0 ] )
15+ }
16+
17+ var isVisiteds = Array ( repeating: false , count: n)
18+ var head = 0
19+ var queue = [ 0 ]
20+ isVisiteds [ 0 ] = true
21+
22+ while head < queue. count {
23+ let currentNode = queue [ head]
24+ head += 1
25+
26+ for node in connectedNodes [ currentNode] {
27+ guard !isVisiteds[ node] else { continue }
28+
29+ isVisiteds [ node] = true
30+ queue. append ( node)
31+ }
32+ }
33+
34+ return isVisiteds. allSatisfy { $0 }
35+ }
36+ }
You can’t perform that action at this time.
0 commit comments