Problem Solving

Solving problems with Likou.com (adding two and two numbers)

Problem description:
Insert picture description here
Problem-solving code:

public class AddTwoNumbers {
    
    

    public static class ListNode {
    
    
        int val;
        ListNode next;
        ListNode(int val) {
    
    
            this.val = val;
        }
        ListNode(int val, ListNode next) {
    
    
            this.val = val;
            this.next = next;
        }
    }

    public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {
    
    
        int carry = 0;
        int sum ;
        ListNode result = new ListNode(-1);
        while(l2 != null || l1 != null){
    
    
            ListNode temp;
            if(l1 == null){
    
    
                sum = l2.val + carry;
            }else{
    
    
                if(l2 == null){
    
    
                    sum = l1.val + carry;
                }else{
    
    
                    sum = l1.val + l2.val + carry;

                }
            }
            temp = new ListNode(sum % 10);
            carry = sum / 10;
            ListNode temp1 = result;
            while(temp1.next != null){
    
    
                temp1 = temp1.next;
            }
            temp1.next = temp;
            if(l1 != null){
    
    
                l1 = l1.next;
            }
            if(l2 != null){
    
    
                l2 = l2.next;
            }
        }
        if(carry != 0){
    
    
            ListNode temp;
            temp = new ListNode(carry);
            ListNode temp1 = result;
            while(temp1.next != null){
    
    
                temp1 = temp1.next;
            }
            temp1.next = temp;
        }
        return result.next;
    }

    public static void main(String[] args) {
    
    
        ListNode n1 = new ListNode(1,new ListNode(1,new ListNode(3)));
        ListNode n2 = new ListNode(9,new ListNode(7,new ListNode(6)));

        ListNode result = addTwoNumbers(n1,n2);
        while(result != null){
    
    
            System.out.println(result.val);
            result = result.next;
        }
    }
}

Guess you like

Origin blog.csdn.net/mf_yang/article/details/107226723