Easy to Understand C++ soln(a bit long but easy)


#1

ListNode* Solution::addTwoNumbers(ListNode* A, ListNode* B)
{
ListNode *a,*b,*C=NULL,*temp=NULL,*prev=NULL;
a=A;
b=B;
int c=0,sum,sumc;
while(a&&b)
{
sum=a->val+b->val+c;
if(sum>9)
{
c=1;
}
else
{
c=0;
}
sum=sum%10;
temp=new ListNode(sum);
if(C==NULL)
{
C=temp;
}
else
{
prev->next=temp;
}
prev=temp;
a=a->next;
b=b->next;
}
while(a)
{
sum=a->val+c;
if(sum>9)
{
c=1;
}
else
{
c=0;
}
sum=sum%10;
temp=new ListNode(sum);
if(C==NULL)
{
C=temp;
}
else
{
prev->next=temp;
}
prev=temp;
a=a->next;
}
while(b)
{
sum=b->val+c;
if(sum>9)
{
c=1;
}
else
{
c=0;
}
sum=sum%10;
temp=new ListNode(sum);
if(C==NULL)
{
C=temp;
}
else
{
prev->next=temp;
}
prev=temp;
b=b->next;
}
if(c==1)
{
temp=new ListNode©;
prev->next=temp;
temp=NULL;
}
return C;
}