2
public List<Integer> findMinHeightTrees(int n, int[][] edges) {3
if (edges.length == 0) {4
List<Integer> al = new ArrayList<>();8
HashMap<Integer, Set<Integer>> map = new HashMap<>(); // map == graph9
int[] degree = new int[n];10
for (int[] edge : edges) {13
map.putIfAbsent(src, new HashSet<>());14
map.get(src).add(dest);15
map.putIfAbsent(dest, new HashSet<>());16
map.get(dest).add(src);20
Queue<Integer> q = new ArrayDeque<>();21
for (int i = 0; i < degree.length; i++) {31
Integer src = q.poll();33
for (Integer connection : map.get(src)) {35
if (degree[connection] == 1) {41
return new ArrayList<>(q);