【leetCode刷题记录】——两数加和——0511

【题目】:https://leetcode-cn.com/problems/add-two-numbers/

【leetCode刷题记录】——两数加和——0511_第1张图片

【思路】:

输入两个链表,输出一个链表。则需要新建一个链表,把输入的两个链表从头开始,每两个数值相加,添加一个新节点到新链表后面。需要考虑两个数相加时产生的进位,以及最高位的进位。

【代码】:

class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode *result = new ListNode(0);
        ListNode *tmp = result;
        int sum = 0;
        while(l1 || l2){      
            if(l1){
                sum += l1->val;
                l1 = l1->next;
            }
            if(l2){
                sum += l2->val;
                l2 = l2->next;
            }
            tmp->next = new ListNode(sum%10);
            sum /= 10;
            tmp = tmp->next;
        }
        if(sum)
            tmp->next = new ListNode(1);
        return result->next;
    }

};

【运行结果】

【leetCode刷题记录】——两数加和——0511_第2张图片

【分析总结】

时间紧张,之后完善!

你可能感兴趣的:(C/C++学习,leetCode,LeetCode刷题系列)