1.题目链接
2. 两数相加 - 力扣(LeetCode)https://leetcode.cn/problems/add-two-numbers/
2.题目解析
依照题意模拟即可,最好写之前复习一下链表知识
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode *head=nullptr,*p=nullptr;
int temp=0;
while(l1!=nullptr&&l2!=nullptr)
{
int sum=l1->val+l2->val+temp;
if(head==nullptr)
{
head=p=new ListNode(sum%10);
}
else
{
p->next=new ListNode(sum%10);
p=p->next;
}
temp=sum/10;
l1=l1->next;
l2=l2->next;
}
while(l1!=nullptr)
{
int sum=l1->val+temp;
if(head==nullptr)
{
head=p=new ListNode(sum%10);
}
else
{
p->next=new ListNode(sum%10);
p=p->next;
}
temp=sum/10;
l1=l1->next;
}
while(l2!=nullptr)
{
int sum=l2->val+temp;
if(head==nullptr)
{
head=p=new ListNode(sum%10);
}
else
{
p->next=new ListNode(sum%10);
p=p->next;
}
temp=sum/10;
l2=l2->next;
}
if(temp!=0)
p->next=new ListNode(temp);
return head;
}
};