版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/musechipin/article/details/85262725
题目描述:https://leetcode.com/problems/add-two-numbers/
相当于高精度加法,需要注意处理l1、l2长度不一致还有各种进位的情况(只有l1且进位、只有l2且进位、l1l2都没了还有一位进位等)。
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode * helper=new ListNode(0);
ListNode * add=helper;
int flag=0;
while(true)
{
if (l1==NULL && l2==NULL &&flag==0) break;
int sum=0;
if (l1!=NULL)
{
sum=sum+l1->val;
l1=l1->next;
}
if (l2!=NULL)
{
sum=sum+l2->val;
l2=l2->next;
}
sum+=flag;
flag=sum/10;
add->next=new ListNode(sum%10);
add=add->next;
}
return helper->next;
}
};