package main import ( "fmt" ) func main() { n, special := 0,0 fmt.Scan(&n, &special) type node struct{ val int next *node } h := &node{val: special} mp := make(map[int]*node, 0) mp[special] = h for i := 1; i < n; i++ { var a, b int fmt.Scan(&a, &b) nd := &node{ val: a, } cur := mp[b] nd.next = cur.next cur.next = nd mp[a] = nd } var del int fmt.Scan(&del) for h != nil { if h.val != del { fmt.Printf("%d ", h.val) } h = h.next } }