用链表表示两个数,就是进位的简单模拟,好久不碰cpp结果wa了三次(尴尬...)
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
int ans=0;
int add=0;
int x,y;
ListNode *p=new ListNode(0);
ListNode *head=p;
x=l1->val;y=l2->val;
ans=x+y;
p->val=ans%10;
add=ans/10;l1=l1->next;l2=l2->next;
while(l1!=NULL||l2!=NULL||add!=0){
ListNode *nextnumber=new ListNode(0);
p->next=nextnumber;
p=p->next;
x=0;y=0;
if(l1!=NULL){x=l1->val;}
if(l2!=NULL){y=l2->val;}
ans=x+y+add;
p->val=ans%10;
add=ans/10;
bool flag=false;
if(l1!=NULL){l1=l1->next;flag =true;}
if(l2!=NULL){l2=l2->next;flag=true;}
}
//cout<<p->val<<endl;
return head;
}
};