Como validar se um item pai tem filhos na função LINQ recursiva?

Eu estou fazendo uma função LINQ recursiva, conforme descrito na pergunta:Simulando a recursão de CTE em C #

Meu código é o seguinte:

private static IEnumerable<KeyValuePair<int, int>> getNet(List<DataRow> list, int? leader, int level)
{
    return list
        .Where(x => x.Field<int?>("LeaderID") == leader)
        .SelectMany(x =>
            new[] { 
               new KeyValuePair<int, int>(x.Field<int>("RepID"), level)
                  }.Concat(getNet(list, x.Field<int>("RepID"), level+ 1))
         );
}

Eu gostaria de validar se um pai tem filhos antes de entrar na função novamente porque cada filho é avaliado novamente e isso consome muito tempo.

Ou seja, o pai A tem 5.000 filhos, mas apenas 5 deles têm filhos, eu preciso de algo para validar se os filhos de A têm filhos antes de executar a função para todos eles.

Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion