2-Add Two Numbers

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
Explanation: 342 + 465 = 807.
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode p=l1,q=l2;
        ListNode head=new ListNode(0);
        ListNode curr=head;
        int carry=0;
        while(p!=null || q!=null)
        {
            int x=(p!=null)?p.val:0;
            int y=(q!=null)?q.val:0;
            int sum=x+y+carry;
            carry=sum/10;
            curr.next=new ListNode(sum%10);
            curr=curr.next;
            if (p!=null) p=p.next;
            if (q!=null) q=q.next;
        }
        if (carry>0)
            curr.next=new ListNode(carry);
        return head.next;
    }

 

posted @ 2018-03-06 22:46  尘世中一个迷途小书童  阅读(83)  评论(0编辑  收藏  举报