Нет «нужно»; тебе решать. Различные реализации будут иметь разные характеристики производительности, занимать различное количество времени, чтобы реализовать, понять и получить право. Это, по-моему, типично для разработки программного обеспечения в целом.
Возможно, я сначала попытался бы иметь глобальный список всех трёх узлов, которые до сих пор были созданы, и представлять дочерние указатели в каждом узле в виде списка индексов в глобальный список. Наличие словаря для представления привязки ребенка для меня слишком тяжело.