Честно говоря, определение "эффективный" было бы хорошим первым шагом. Что считается важным? Пропускная способность сети? Вычисления на стороне сервера участвуют? Вычисления на стороне клиента?
В том же духе, что это за данные?
Например, если данные являются целыми числами и важна пропускная способность сети, вы можете создать массив деревьев из дерева, передать его с минимальными издержками, а затем преобразовать его обратно в двоичное дерево на стороне пользователя.
Если загрузка на стороне сервера является наиболее важной вещью, вы пошли бы другим путем. Если загрузка на стороне клиента, возможно, еще одна.
Стоит отметить, что, поскольку это вопрос интервью, обсуждение с интервьюером того, что они считают важным для эффективности и как это влияет на решение, может быть столь же важным, как и фактическое решение, которое вы придумали.