What this problem teaches: Combine data structures. A set for fast lookup plus a list for ordering solves problems neither can solve alone.
"Seen" tracking pattern. When you need to remember what you've processed, a set is your friend.
Order matters sometimes. set(list) loses order. When order matters, build results manually. This pattern (set for tracking, list for results) appears in many problems: removing duplicates, finding first unique, checking for cycles.