首页 > 其他 > 详细

Add Two Numbers

时间:2018-04-18 14:12:28      阅读:172      评论:0      收藏:0      [点我收藏+]

问题描写叙述:
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
解决方式:

/**
 * 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) {
        if(l1==NULL||l2==NULL)
            return NULL;
        int c = 0;
        ListNode* result = new ListNode(0);
        ListNode* pNode = result;
        pNode->next = NULL;
        pNode->val = (l1->val+l2->val)%10;
        c = (l1->val+l2->val)/10;
        l1 = l1->next;
        l2 = l2->next;
        while(l1!=NULL&&l2!=NULL)
        {
            ListNode* temp = new ListNode(0);
            temp->next = NULL;
            temp->val = (l1->val+l2->val+c)%10;
            c = (l1->val+l2->val+c)/10;
            pNode->next = temp;
            pNode = pNode->next;
            l1 = l1->next;
            l2 = l2->next;
        }
        while(l1!=NULL)
        {
            ListNode* temp = new ListNode(0);
            temp->next = NULL;
            temp->val = (l1->val+c)%10;
            c = (l1->val+c)/10;
            pNode->next = temp;
            pNode = pNode->next;
            l1=l1->next;
        }
         while(l2!=NULL)
        {
            ListNode* temp = new ListNode(0);
            temp->next = NULL;
            temp->val = (l2->val+c)%10;
            c = (l2->val+c)/10;
            pNode->next = temp;
            pNode = pNode->next;
            l2=l2->next;
        }
        if(c)
        {
            ListNode* temp = new ListNode(c);
            pNode->next = temp;

        }
        return result;
    }
};

Add Two Numbers

原文:https://www.cnblogs.com/zhchoutai/p/8874254.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!