Связанные списки не поддерживают произвольный доступ. Поэтому, если вы заранее не знаете, сколько элементов в связанном списке или среднем узле помечено как таковое в силу структуры / определения узла в вашем коде, вы не сможете получить его без итерации.
Если вы знаете количество элементов в связанном списке, вы можете просто повторить половину из них, в противном случае вам придется повторять полный список, отслеживать счетчик, а затем повторять снова, чтобы счетчик делился на два.