1. 程式人生 > >2. Add Two Numbers的C++解法

2. Add Two Numbers的C++解法

題目描述: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;
    }
};