LeetCode 2 Add Two Numbers

题目

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
      
        ListNode* res = new ListNode(0);
        ListNode* result =res;
        
        
        int x=0;int y=0;
        while(l1!=NULL||l2!=NULL||y!=0)
        {
            x=0;
            if(l1!=NULL)
                x+=l1->val;
            if(l2!=NULL)
                x+=l2->val;
            x+=y;
            if(x>=10)
            {
                y = x/10;
                x = x%10;
            }
            else
            {
                y=0;
            }
            result->val =x;   
            if((l1!=NULL&&l1->next!=NULL)||(l2!=NULL&&l2->next!=NULL)||y!=0)
            {
                result->next = new ListNode(0);
                result = result->next;
            }
            if(l1!=NULL)
                l1=l1->next;
            if(l2!=NULL)
                l2=l2->next;
        }
        
        return res;
    }
    
    
};
posted @ 2019-05-23 10:54  Shendu.CC  阅读(93)  评论(0编辑  收藏  举报