Не могу сообразить как перебрать сочетания объектов в связном списке из n по 2.
Сначала начал писать алгоритм на массиве, чтобы было проще. Получилась такая рекурсивная функция:
void combine(int index)
{
for (int i = index + 1; i < LENGTH; i++)
{
cout << arr[index] << " " << arr[i] << endl;
combine(i);
}
}
Но таким образом сочетания повторяются.
Как правильно сделать перебор всех сочетаний из n по 2 и чтобы это не было слишком времязатратно?