private Node addWithCarry(Node head1, Node head2){
        if(head1 == null){
            return null;
        }
        Node result = Node.newNode(0);
        result.next = addWithCarry(head1.next, head2.next);
        int r = head1.data + head2.data + carry;
        result.data = r % 10;
        carry = r / 10;
        return result;
    }
http://www.geeksforgeeks.org/sum-of-two-linked-lists/
Test case
Either of list is null
Size of list1 is greater, equal or smaller than list2
Add with carry in main
Add with carry in remaining
src/com/interview/linklist/AddNumberRepresentedByLinkList.java