明天看

 1 public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
 2     ListNode fake = new ListNode(0);
 3     ListNode p = fake;
 4  
 5     ListNode p1 = l1;
 6     ListNode p2 = l2;
 7  
 8     int carry = 0;
 9     while(p1!=null || p2!=null){
10         int sum = carry;
11         if(p1!=null){
12             sum += p1.val;
13             p1 = p1.next;
14         }
15  
16         if(p2!=null){
17             sum += p2.val;
18             p2 = p2.next;
19         }
20  
21         if(sum>9){
22             carry=1;
23             sum = sum-10;
24         }else{
25             carry = 0;
26         }
27  
28         ListNode l = new ListNode(sum);
29         p.next = l;
30         p = p.next;
31     }
32  
33     //don't forget check the carry value at the end
34     if(carry > 0){
35         ListNode l = new ListNode(carry);
36         p.next = l;
37     }
38     return fake.next;
package sort;

public class AddTwoNumbers {

    public static ListNode addTwoNumbersFun(ListNode l1,ListNode l2) {
        ListNode result=new ListNode();
        ListNode resultOne=new ListNode();
        result.next=resultOne;
        int num1,num2;
        int forwordNum=0;
        while(l1.next!=null||l2.next!=null) {
            if(l1.next==null) num1=0;
            else num1=l1.val;
            if(l2.next==null) num2=0;
            else num2=l2.val;
            int addNum = num1+num2+forwordNum;
            resultOne.val=addNum%10;
            resultOne=resultOne.next;
            forwordNum=addNum/10;
            if(l1.next!=null) {
                l1=l1.next;
            }
            if(l2.next!=null) {
                l2=l2.next;
            }
        }
        return result.next;
    }
    public static void main(String[] args) {
        ListNode node1=new ListNode(2);
        ListNode node2=new ListNode(4);
        ListNode node3=new ListNode(3);
        node1.next=node2;
        node2.next=node3;
        ListNode node4=new ListNode(5);
        ListNode node5=new ListNode(6);
        ListNode node6=new ListNode(4);
        node4.next=node5;
        node5.next=node6;
        ListNode result = addTwoNumbersFun(node1,node4);
        while(result.next!=null) {
            System.out.println(result.val);
            result=result.next;
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/lyxcode/p/11210594.html