leetcode: #2 两数相加
题目描述
java实现
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode pointer1 = l1;
ListNode pointer2 = l2;
int sumOfRemainder = 0;
int carryOfNumber = 0;
ListNode headNode = new ListNode();
ListNode currentNode = headNode;
while(pointer1 != null && pointer2 !=null) {
sumOfRemainder = (carryOfNumber + pointer1.val + pointer2.val) % 10;
carryOfNumber = (carryOfNumber + pointer1.val + pointer2.val) / 10;
ListNode tempNode = new ListNode(sumOfRemainder);
currentNode.next = tempNode;
currentNode = tempNode;
pointer1 = pointer1.next;
pointer2 = pointer2.next;
}
while(pointer1 != null) {
sumOfRemainder = (carryOfNumber + pointer1.val) % 10;
carryOfNumber = (carryOfNumber + pointer1.val) / 10;
ListNode tempNode = new ListNode(sumOfRemainder);
currentNode.next = tempNode;
currentNode = tempNode;
pointer1 = pointer1.next;
}
while(pointer2 != null) {
sumOfRemainder = (carryOfNumber + pointer2.val) % 10;
carryOfNumber = (carryOfNumber + pointer2.val) / 10;
ListNode tempNode = new ListNode(sumOfRemainder);
currentNode.next = tempNode;
currentNode = tempNode;
pointer2 = pointer2.next;
}
if(carryOfNumber != 0) {
ListNode tempNode = new ListNode(carryOfNumber);
currentNode.next = tempNode;
}
return headNode.next;
}
}