Чтоб было легче проверять, создаю лист со String и проверяю по ним, а не по листу с Pair
public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        reader = new BufferedReader(new FileReader(reader.readLine()));

        List<String> wordList = new LinkedList<>();

        while (reader.ready()) {
            String[] wordsInLine = reader.readLine().split("\\s");

            for (String word : wordsInLine) {
                String reversedWord = new StringBuilder(word).reverse().toString();

                if (wordList.contains(reversedWord)) {
                    int indexInList = wordList.indexOf(reversedWord);

                    Pair pair = new Pair();
                    pair.first = wordList.get(indexInList);
                    pair.second = word;

                    if (!result.contains(pair)) {
                        result.add(pair);
                    }
                } else {
                    wordList.add(word);
                }
            }
        }
        reader.close();
    }