Skip to content

Commit 067d26c

Browse files
committed
solve
1 parent 750a4c9 commit 067d26c

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

graph-valid-tree/sonjh1217.swift

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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+
}

0 commit comments

Comments
 (0)