LeetCode-2-两数相加
程序员文章站
2022-03-06 08:22:11
...
题目链接https://leetcode-cn.com/problems/add-two-numbers/
方法:直接将结点对应值相加
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2)
{
ListNode*result=NULL,*temp=NULL; //一个记录头,一个记录尾(方便新新结点放入)
int sum=0;
while(l1!=NULL||l2!=NULL)
{
ListNode *NewNode= new ListNode;
if(l1!=NULL&&l2!=NULL)
{
sum+=(l1->val+l2->val);
}
else if(l1!=NULL&&l2==NULL)
{
sum+=(l1->val);
}
else if(l1==NULL&&l2!=NULL)
{
sum+=(l2->val);
}
NewNode->val=sum%10;
sum/=10;
if(result==NULL&&temp==NULL)
{
result=NewNode;
temp=NewNode;
}
else
{
temp->next=NewNode;
temp=NewNode;
}
//更新l1 l2位置
if(l1!=NULL)
{
l1=l1->next;
}
if(l2!=NULL)
{
l2=l2->next;
}
}
if(sum!=0) //如果最后还有余数
{
ListNode *NewNode= new ListNode;
NewNode->val=sum;
if(result==NULL&&temp==NULL)
{
result=NewNode;
temp=NewNode;
}
else
{
temp->next=NewNode;
temp=NewNode;
}
}
return result;
}
};