First implementation, use unordered_map as hashtable
First implementation, use two ListNode pointers
First implementation, use boolean array as hashtable