Сначала попробуйте сами: на собеседовании подсказки не будет.
Подсчёт частот словарём за один проход, затем выбор ключа с максимальным счётчиком. Строгое сравнение n > best_n при переборе counts.items() оставляет первое значение при ничьей: словарь хранит ключи в порядке первой вставки, а это и есть порядок первого появления в списке.
collections.Counter(values).most_common(1) тоже подходит и тоже сохраняет порядок первого появления при равных частотах.
def mode(values):
counts = {}
for v in values:
counts[v] = counts.get(v, 0) + 1
best, best_n = None, 0
for v, n in counts.items():
if n > best_n:
best, best_n = v, n
return best