Minimum Height Trees LeetCode solution in Python

1
class Solution:
2
def findMinHeightTrees(self, n: int, edges: List[List[int]]) -> List[int]:
3
if n == 0:
4
return []
5
if n == 1:
6
return [0]
7
adj = [[] for i in range(n)]
8
degree = [0] * n
9
for i in edges:
10
adj[i[0]].append(i[1])
11
adj[i[1]].append(i[0])
12
degree[i[0]] += 1
13
degree[i[1]] += 1
14

15
print(adj)
16
q = []
17
for i in range(n):
18
if degree[i] == 1:
19
q.append(i)
20

21
while n > 2:
22
size = len(q)
23
n -= size
24
while size > 0:
25
v = q.pop(0)
26
for i in adj[v]:
27
degree[i] -= 1
28
if degree[i] == 1:
29
q.append(i)
30
size -= 1
31
return q

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0