LeetCode-Add Two Numbers

来源:互联网 发布:mac系统压缩软件 编辑:程序博客网 时间:2024/05/08 06:08
/** * 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) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        ListNode *l3 = NULL;        ListNode *pNode = NULL;        int carry = 0;        while (l1 && l2)        {            int val = (l1->val + l2->val + carry) % 10;            carry = (l1->val + l2->val + carry) / 10;            if (!pNode)            {                pNode = new ListNode(val);                l3 = pNode;            }            else            {                pNode->next = new ListNode(val);                pNode = pNode->next;            }            l1 = l1->next;            l2 = l2->next;        }        l1 = l1 ? l1 : l2;        while (l1)        {            int val = (l1->val + carry) % 10;            carry = (l1->val + carry) / 10;            if (!pNode)            {                pNode = new ListNode(val);                l3 = pNode;            }            else            {                pNode->next = new ListNode(val);                pNode = pNode->next;            }            l1 = l1->next;        }        if (carry)        {            pNode->next = new ListNode(1);        }        return l3;    }};

原创粉丝点击