class Solution {
public:
ListNode* reverseList(ListNode* head)
{
ListNode* newNode = new ListNode(0);
ListNode* cut = head;
while(cut)
{
ListNode* next = cut->next;
cut->next = newNode->next;
newNode->next = cut;
cut = next;
}
cut = newNode->next;
delete newNode;
return cut;
}
ListNode* addInList(ListNode* head1, ListNode* head2) {
ListNode* cut = reverseList(head1);
ListNode* cut1 = reverseList(head2);
ListNode* ret = new ListNode(0);
int t = 0;
while(cut || cut1 || t )
{
if(cut)
{
t += cut->val;
cut = cut->next;
}
if(cut1)
{
t += cut1->val;
cut1 = cut1->next;
}
ListNode* a = ret->next;
ret->next = new ListNode(t%10);
ret->next->next = a;
t /= 10;
}
ListNode* b = ret->next;
delete ret;
return b;
}
};