static LinkedListNode addLists(LinkedListNode n1, LinkedListNode n2) {
        LinkedListNode n = new LinkedListNode(-1);
        LinkedListNode head = n;
        int carry = 0;
        while (n1 != null || n2 != null || carry != 0) {
            int sum = 0;
            if (n1 != null) {
                sum += n1.data;
                n1 = n1.next;
            }
            if (n2 != null) {
                sum += n2.data;
                n2 = n2.next;
            }
            if (carry != 0) {
                sum += carry;
            }
            int digit = sum % 10;
            carry = sum / 10;
            n.next = new LinkedListNode(digit);
            n = n.next;
        }
        return head.next;
    }