проверял с несколькими вариантами наборов слов, все сработали корректно алгоритм в двух словах: 1. вставляем первое слово, строим цепочку начиная с этого слова 2. каждое вставленное слово превращаем в нулл, что б не использовать повторно 3. проверяем, если в массиве остались слова не равны нулл, значит они не были вставлены в массив, соотвественно массив отсортирован некорректно, начинаем сначала но меняем первое слово в цепочке 4. если все слова нулл, возвращаем список если аргументом передан набор слов в котором нет правильного варианта расстановки слов, таким образом, что бы они все были задействованы выбрасывается исключение вообще не пойму как последный пункт проходит, а предпоследний нет🤨