LeetCode 2. 兩數相加
阿新 • • 發佈:2019-01-22
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode * addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode *L = l1,*pre,*old;
int carry_bit = 0 ,t;
while (l1 && l2){
pre = l1, old = l2;
t = l1->val + l2->val + carry_bit;
carry_bit = t/10;
l1->val = t % 10;
l1 = l1->next, l2 = l2->next;
delete(old);
}
if (l2) l1=pre->next = l2;
while (l1) {
pre = l1;
t = l1->val + carry_bit;
carry_bit = t / 10;
l1->val = t % 10;
l1 = l1->next;
}
if (carry_bit) {
old = new ListNode(1);
pre->next = old;
}
return L;
}
};