思路:
很简单的一道链表题,从前往后按位进行相加运算即可,直接附代码。
代码:
class Solution {
public:
ListNode *addTwoNumbers(ListNode *l1, ListNode *l2)
{
if(l1==NULL)return l2;
if(l2==NULL)return l1;
ListNode *l3=NULL;
ListNode *p=l3;
int ans=0,sum;
while(l1!=NULL||l2!=NULL)
{
sum=ans;
if(l1!=NULL)
{
sum+=l1->val;
l1=l1->next;
}
if(l2!=NULL)
{
sum+=l2->val;
l2=l2->next;
}
ans=sum/10;
int cur=sum%10;
ListNode *tmp=new ListNode(cur);
if(l3==NULL)
{
l3=tmp;
p=l3;
}
else
{
p->next=tmp;
p=p->next;
}
}
if(ans!=0)
{
ListNode *tmp=new ListNode(ans);
p->next=tmp;
}
return l3;
}
};
代码: