private static void AddChildren(User user, int maxDepth)
{
if (maxDepth == 0)
return;
for (var i = 0; i < 3; ++i)
{
var child = new User(1);
AddChildren(child, maxDepth - 1);
user.Children.Add(child);
}
}
И начальный вызов должен быть
AddChildren(new User(1), 3); //where 3 is max depth of tree.