public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        if (l1 == null) {
            return l2;
        }
        if (l2 == null) {
            return l1;
        }
        ListNode resultListNode = new ListNode(0);
        ListNode temp = new ListNode(0);
        resultListNode = temp;
        while (l1 != null || l2 != null || carrier != 0) {
            if (l1 == null && l2 == null) {
                ListNode lNode = new ListNode(carrier);
                temp.next = lNode;
                temp = lNode;
                carrier = 0;
            } else {
                ListNode lNode = calculate(l1, l2);
                temp.next = lNode;
                temp = lNode;
            }

            if (l1 != null) {
                l1 = l1.next;
            }
            if (l2 != null) {
                l2 = l2.next;
            }
        }
        return resultListNode.next;
    }