/**
* 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 *res=new ListNode(0);
int now;
int jinwei=0;
ListNode *p1=l1;
ListNode *p2=l2;
ListNode *pr=res;
ListNode *pcun;
while(p1!=NULL&&p2!=NULL)
{
now=p1->val+p2->val+pr->val;
jinwei=now/10;
pr->val=now % 10;
pr->next=new ListNode(jinwei);
pcun=pr;
pr=pr->next;
p1=p1->next;
p2=p2->next;
}
while(p1!=NULL)
{
now=p1->val+pr->val;
jinwei=now/10;
pr->val=now%10;
pr->next=new ListNode(jinwei);
pcun=pr;
pr=pr->next;
p1=p1->next;
}
while(p2!=NULL)
{
now=p2->val+pr->val;
jinwei=now/10;
pr->val=now%10;
pr->next=new ListNode(jinwei);
pcun=pr;
pr=pr->next;
p2=p2->next;
}
if(pr->val==0)
{
delete pr;
pcun->next=NULL;
}
return res;
}
};
把自己丑丑的代码记一下,速度是48ms战胜77%(但是我之前同样代码跑过一边,战胜15%,想来这道题没有什么算法差距,主要是题目本身的问题(进位)注意到就能通过,所以代码优美与否不太影响时机效率)