наверное я бы попробовал сделать граф из инпутов, дальше просто проходиться по этому графу в ширину (начиная с минимальной дочерней ноды). я думаю наверное можно было бы сразу при формировании графа, сортировать дочерние ноды
я должен был сказать дерево наверное, а не граф, а какие вообще ограничения?