Leetcode 1866 Solution

This article provides solution to leetcode question 1866 (restore-the-array-from-adjacent-pairs)

https://leetcode.com/problems/restore-the-array-from-adjacent-pairs

Solution

class Solution: def restoreArray(self, adjacentPairs: List[List[int]]) -> List[int]: graph = collections.defaultdict(list)
for node1, node2 in adjacentPairs: graph[node1].append(node2) graph[node2].append(node1)
head = None for src, dsts in graph.items(): if len(dsts) == 1: head = src break
assert head is not None
ans = [head] prev_node = None node = head while len(ans) < len(adjacentPairs) + 1: for neighbor in graph[node]: if neighbor == prev_node: continue
ans.append(neighbor) prev_node = node node = neighbor break else: raise Exception()
return ans