Minimum Height Trees LeetCode solution in Python
1class Solution:2def findMinHeightTrees(self, n: int, edges: List[List[int]]) -> List[int]:3if n == 0:4return []5if n == 1:6return [0]7adj = [[] for i in range(n)]8degree = [0] * n9for i in edges:10adj[i[0]].append(i[1])11adj[i[1]].append(i[0])12degree[i[0]] += 113degree[i[1]] += 11415print(adj)16q = []17for i in range(n):18if degree[i] == 1:19q.append(i)2021while n > 2:22size = len(q)23n -= size24while size > 0:25v = q.pop(0)26for i in adj[v]:27degree[i] -= 128if degree[i] == 1:29q.append(i)30size -= 131return q