两数相加
/**
* 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* root = new ListNode(0);
ListNode* head=root;
int carry=0;
int l1val;
int l2val;
int sumVal;
while(l1!=NULL||l2!=NULL||carry!=0)
{
l1val=l1!=NULL?l1->val:0;
l2val=l2!=NULL?l2->val:0;
sumVal=l1val+l2val+carry;
carry=sumVal/10;
head->next=new ListNode(sumVal%10);
head=head->next;
if(l1!=NULL)
l1=l1->next;
if(l2!=NULL)
l2=l2->next;
}
return root->next;
}
};