Leecode-2. 两数相加
题目
答案
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode * rec= new ListNode();
ListNode * i= rec;
int sum=0;
while(l1||l2||sum)
{
if(l1) {sum+=l1->val;l1=l1->next;}
if(l2) {sum+=l2->val;l2=l2->next;}
i->next=new ListNode(sum%10);
i=i->next;
sum=sum/10;
}
return rec->next;
}
};
完整代码
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
class ListNode {
public:
int val;
ListNode *next;
ListNode() : val(0), next(nullptr) {}
ListNode(int x) : val(x), next(nullptr) {}
ListNode(int x, ListNode *next) : val(x), next(next) {}
};
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode * rec= new ListNode();
ListNode * i= rec;
int sum=0;
while(l1||l2||sum)
{
if(l1) {sum+=l1->val;l1=l1->next;}
if(l2) {sum+=l2->val;l2=l2->next;}
i->next=new ListNode(sum%10);
i=i->next;
sum=sum/10;
}
return rec->next;
}
};
int main() {
Solution sol;
std::cout << "Hello, World!" << std::endl;
ListNode* test1=new ListNode(1);
test1->next=new ListNode(7);
test1->next->next=new ListNode(3);
ListNode* test2=new ListNode(4);
test2->next=new ListNode(5);
test2->next->next=new ListNode(6);
Solution solution;
ListNode* answer=solution.addTwoNumbers(test1,test2);
while (answer){
cout << answer->val << " ";
answer=answer->next;
}
return 0;
}