2
public int[][] validArrangement(int[][] pairs) {5
int[][] ans = new int[n][2];11
Map<Integer, Integer> outdegree = new HashMap<>();12
Map<Integer, Deque<Integer>> out = new HashMap<>();14
for (int[] pair : pairs) {15
outdegree.put(pair[0], outdegree.getOrDefault(pair[0], 0) + 1);16
outdegree.put(pair[1], outdegree.getOrDefault(pair[1], 0) - 1);18
out.computeIfAbsent(pair[0], k -> new ArrayDeque<>());19
out.computeIfAbsent(pair[1], k -> new ArrayDeque<>());21
out.get(pair[0]).addLast(pair[1]);24
for (Map.Entry<Integer, Integer> entry : outdegree.entrySet()) {25
if (entry.getValue() == 1) ans[0][0] = entry.getKey();26
if (entry.getValue() == -1) ans[n - 1][1] = entry.getKey();29
if (ans[0][0] == -1) {30
ans[0][0] = pairs[0][0];31
ans[n - 1][1] = pairs[0][0];39
Deque<Integer> toList = out.get(from);41
if (toList.size() == 0) {42
ans[j][0] = ans[--i][0];43
ans[--j][1] = ans[j + 1][0];45
ans[i++][1] = toList.removeLast();46
ans[i][0] = ans[i - 1][1];