1. 程式人生 > >LeetCode 2. 兩數相加

LeetCode 2. 兩數相加

/**
 * 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; } };