2. Add Two Numbers的C++解法

版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
    }
};

猜你喜欢

转载自blog.csdn.net/musechipin/article/details/85262725