Big-O рекурсивного создания дерева из плоского списка

Есть метод формирование дерева из плоского списка. Не получается составить формулу рекуррентного соотношения

public static IEnumerable<TreeItem<T>> GenerateTree<T, K>(
      this IEnumerable<T> collection,
      Func<T, K> idSelector,
      Func<T, K> parentIdSelector,
      K rootId = default(K))
{
    foreach (var c in collection.Where(c => EqualityComparer<K>.Default.Equals(parent_id_selector(c), root_id)))
    {
        yield return new TreeItem<T>
        {
            Item = c,
            Children = collection.GenerateTree(idSelector, parentIdSelector, idSelector(c))
        };
    }
}

Ответы (0 шт):