public int sumReverse(ListNode<Integer> n1, ListNode<Integer> n2) {
    validateInput(n1, n2);

    int n1Value = calculateReverseNumber(n1);
    int n2Value = calculateReverseNumber(n2);
    return n1Value + n2Value;
  }
Iterative solution to this problem. The complexity order of this algorithm in time terms is
O(N) where N is the size of the largest list. In space terms, the complexity order of this
algorithm is O(1) because we are not using any additional data structure.

This solution could be faster if we iterate over n1 and n2 at the same time just taking care
about null pointer exceptions, but the readability could be worst and the complexity order in
time terms is the same.
src/main/java/com/github/pedrovgs/problem61/SumLists.java