代码写的有点乱,删了个delete之后快了4ms
开始题目都没看懂,借助百度翻译 汗
就是倒着加
7 8 9
1 0 1
8 8 0 1
/**
* 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) {
int iSum;
ListNode* l3;
ListNode* pNode;
l3 = l1;
int increment = 0;
while(l1!=NULL&&l2!=NULL)
{
iSum = l1->val+l2->val+increment;
l1->val = iSum%10;
increment = iSum/10;
pNode = l1;
l1 = l1->next;
l2 = l2->next;
}
while(l1!=NULL)
{
iSum = l1->val + increment;
l1->val = iSum%10;
increment = iSum/10;
pNode = l1;
l1 = l1->next;
}
if(l2!=NULL)
{
pNode->next = l2;
}
while(l2!=NULL)
{
iSum = l2->val + increment;
l2->val = iSum%10;
increment = iSum/10;
pNode = pNode->next;
l2 = l2->next;
}
if(increment)
{
pNode->next = new ListNode(increment);
}
return l3;
}
};