Add Two Numbers
add two linkedlist.
example:
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
Explanation: 342 + 465 = 807.
and the solutions will be like follows:
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
if (l1 == null && l2 == null) return null;
if (l1 == null) return l2;
if (l2 == null) return l1;
ListNode p1 = l1;
ListNode p2 = l2;
ListNode res = new ListNode(0);
ListNode p = res;
int ten = 0;
while (p1 != null && p2 != null) {
int sum = p1.val + p2.val;
sum = (sum + ten);//add the last time
p.next = new ListNode(sum % 10); //and we only add sum%10 on current postion
p = p.next;
ten = sum / 10; //and we get the thing for next loop
if (p1.next != null && p2.next != null) {
p1 = p1.next;
p2 = p2.next;
} else if (p1.next != null) {
p1 = p1.next;
p2 = new ListNode(0);
} else if (p2.next != null) {
p1 = new ListNode(0);
p2 = p2.next;
} else {
p1 = p1.next;
p2 = p2.next;
//will automatically end while loop next time.
}
}
if (ten != 0) {
p.next = new ListNode(ten);
}
return res.next;
}
}

浙公网安备 33010602011771号