LeetCode 每日一题 (两数相加)

2021/6/28 23:21:25

本文主要是介绍LeetCode 每日一题 (两数相加),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        
        ListNode *p = l1;
        ListNode *q = l2;

        ListNode *ret = nullptr;
        ListNode *curr = nullptr;

        int a = 0;
        int b = 0;

        int inc = 0;
        int t = 0;
        for(int i = 1;i<=100;i++){
            if (p == nullptr && q == nullptr){
                break;
            }

            if (p != nullptr){
                a = p->val;
                p = p->next;
            }else{
                a = 0;
            }
            
            if (q != nullptr){
                b = q->val;
                q = q->next;    
            }else{
                b = 0;
            }

            t = a + b + inc;
            inc = 0;
            if (t >= 10){
                inc = 1;
                t = t %10;
            }

            if (ret == nullptr){
                ret = new ListNode(t, nullptr);
                curr = ret;
            }else{
                curr->next = new ListNode(t, nullptr);
                curr = curr->next;
            }          
        }

        if (inc > 0){
            t = inc;
            if (ret == nullptr){
                ret = new ListNode(t, nullptr);
                curr = ret;
            }else{
                curr->next = new ListNode(t, nullptr);
                curr = curr->next;
            }
        }

        return ret;
    }
};

结果

执行结果



这篇关于LeetCode 每日一题 (两数相加)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程