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